- /**
- *
- * @author liuguangyi
- * @content ejb3注解的API定义在javax.persistence.*包里面。
- *
- * 注释说明:
- * @Entity —— 将一个类声明为一个实体bean(即一个持久化POJO类)
- * @Id —— 注解声明了该实体bean的标识属性(对应表中的主键)。
- * @Table —— 注解声明了该实体bean映射指定的表(table),目录(catalog)和schema的名字
- * @Column —— 注解声明了属性到列的映射。该注解有如下的属性
- * name 可选,列名(默认值是属性名)
- * unique 可选,是否在该列上设置唯一约束(默认值false)
- * nullable 可选,是否设置该列的值可以为空(默认值false)
- * insertable 可选,该列是否作为生成的insert语句中的一个列(默认值true)
- * updatable 可选,该列是否作为生成的update语句中的一个列(默认值true)
- * columnDefinition 可选,为这个特定列覆盖sql ddl片段(这可能导致无法在不同数据库间移植)
- * table 可选,定义对应的表(默认为主表)
- * length 可选,列长度(默认值255)
- * precision 可选,列十进制精度(decimal precision)(默认值0)
- * scale 可选,如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)
- * @GeneratedValue —— 注解声明了主键的生成策略。该注解有如下属性
- * strategy 指定生成的策略(JPA定义的),这是一个GenerationType。默认是GenerationType. AUTO
- * GenerationType.AUTO 主键由程序控制
- * GenerationType.TABLE 使用一个特定的数据库表格来保存主键
- * GenerationType.IDENTITY 主键由数据库自动生成(主要是自动增长类型)
- * GenerationType.SEQUENCE 根据底层数据库的序列来生成主键,条件是数据库支持序列。(这个值要与generator一起使用)
- * generator 指定生成主键使用的生成器(可能是orcale中的序列)。
- * @SequenceGenerator —— 注解声明了一个数据库序列。该注解有如下属性
- * name 表示该表主键生成策略名称,它被引用在@GeneratedValue中设置的“gernerator”值中
- * sequenceName 表示生成策略用到的数据库序列名称。
- * initialValue 表示主键初始值,默认为0.
- * allocationSize 每次主键值增加的大小,例如设置成1,则表示每次创建新记录后自动加1,默认为50.
- * @GenericGenerator —— 注解声明了一个hibernate的主键生成策略。支持十三种策略。该注解有如下属性
- * name 指定生成器名称
- * strategy 指定具体生成器的类名(指定生成策略)。
- * parameters 得到strategy指定的具体生成器所用到的参数。
- * 其十三种策略(strategy属性的值)如下:
- * 1.native 对于orcale采用Sequence方式,对于MySQL和SQL Server采用identity(处境主键生成机制),
- * native就是将主键的生成工作将由数据库完成,hibernate不管(很常用)
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”native”)
- * 2.uuid 采用128位的uuid算法生成主键,uuid被编码为一个32位16进制数字的字符串。占用空间大(字符串类型)。
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”uuid”)
- * 3.hilo 要在数据库中建立一张额外的表,默认表名为hibernate_unque_key,默认字段为integer类型,名称是next_hi(比较少用)
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”hilo”)
- * 4.assigned 在插入数据的时候主键由程序处理(很常用),这是<generator>元素没有指定时的默认生成策略。等同于JPA中的AUTO。
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”assigned”)
- * 5.identity 使用SQL Server和MySQL的自增字段,这个方法不能放到Oracle中,Oracle不支持自增字段,要设定sequence(MySQL和SQL Server中很常用)。等同于JPA中的IDENTITY
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”identity”)
- * 6.select 使用触发器生成主键(主要用于早期的数据库主键生成机制,少用)
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”select”)
- * 7.sequence 调用谨慎数据库的序列来生成主键,要设定序列名,不然hibernate无法找到。
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”sequence”,
- * parameters = { @Parameter(name = ”sequence”, value = ”seq_payablemoney”) })
- * 8.seqhilo 通过hilo算法实现,但是主键历史保存在Sequence中,适用于支持Sequence的数据库,如Orcale(比较少用)
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”seqhilo”,
- * parameters = { @Parameter(name = ”max_lo”, value = ”5”) })
- * 9.increnment 插入数据的时候hibernate会给主键添加一个自增的主键,但是一个hibernate实例就维护一个计数器,所以在多个实例运行的时候不能使用这个方法。
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”increnment”)
- * 10.foreign 使用另一个相关的对象的主键。通常和<one-to-one>联合起来使用。
- * 例:@Id
- * @GeneratedValue(generator = ”idGenerator”)
- * @GenericGenerator(name = ”idGenerator”, strategy = ”foreign”,
- * parameters = { @Parameter(name = ”property”, value = ”info”) })
- * Integer id;
- * @OneToOne
- * EmployeeInfo info;
- * 11.guid 采用数据库底层的guid算法机制,对应MySQL的uuid()函数,SQL Server的newid()函数,ORCALE的rawtohex(sys_guid())函数等
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”guid”)
- * 12.uuid.hex 看uudi,建议用uuid替换
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”uuid.hex”)
- * 13.sequence-identity sequence策略的扩展,采用立即检索策略来获取sequence值,需要JDBC3.0和JDK4以上(含1.4)版本
- * 例:@GeneratedValue(generator = ”paymentableGenerator”)
- * @GenericGenerator(name = ”paymentableGenerator”, strategy = ”sequence-identity”,
- * parameters = { @Parameter(name = ”sequence”, value = ”seq_payablemoney”) })
- *
- * @OneToOne 设置一对一个关联。cascade属性有五个值(只有CascadeType.ALL好用?很奇怪),分别是CascadeType.PERSIST(级联新建),CascadeType.REMOVE(级联删除),CascadeType.REFRESH(级联刷新),CascadeType.MERGE(级联更新),CascadeType.ALL(全部四项)
- * 方法一
- * 主表: ?@OneToOne(cascade = CascadeType.ALL)
- * @PrimaryKeyJoinColumn
- * public 从表类 get从表类(){return 从表对象}
- * 从表:没有主表类。
- * 注意:这种方法要求主表与从表的主键值想对应。
- * 方法二
- * 主表:?@OneToOne(cascade = CascadeType.ALL)
- * @JoinColumn(name=”主表外键”) //这里指定的是数据库中的外键字段。
- * public 从表类 get从表类(){return 从表类}
- * 从表:@OneToOne(mappedBy = ”主表类中的从表属性”)//例主表User中有一个从表属性是Heart类型的heart,这里就填heart
- * public 主表类 get主表类(){return 主表对象}
- * 注意:@JoinColumn是可选的。默认值是从表变量名+”_”+从表的主键(注意,这里加的是主键。而不是主键对应的变量)。
- * 方法三
- * 主表:@OneToOne(cascade=CascadeType.ALL)
- * @JoinTable( name=”关联表名”,
- * joinColumns = @JoinColumn(name=”主表外键”),
- * inverseJoinColumns = @JoinColumns(name=”从表外键”)
- * )
- * 从表:@OneToOne(mappedBy = ”主表类中的从表属性”)//例主表User中有一个从表属性是Heart类型的heart,这里就填heart
- * public 主表类 get主表类(){return 主表对象}
- * @ManyToOne 设置多对一关联
- * 方法一
- * @ManyToOne(cascade={CasCadeType.PERSIST,CascadeType.MERGE})
- * @JoinColumn(name=”外键”)
- * public 主表类 get主表类(){return 主表对象}
- * 方法二
- * @ManyToOne(cascade={CascadeType.PERSIST,CascadeType.MERGE})
- * @JoinTable(name=”关联表名”,
- * joinColumns = @JoinColumn(name=”主表外键”),
- * inverseJoinColumns = @JoinColumns(name=”从表外键”)
- * )
- * @OneToMany 设置一对多关联。cascade属性指定关联级别,参考@OneToOne中的说明。fetch指定是否延迟加载,值为FetchType.LAZY表示延迟,为FetchType.EAGER表示立即加载
- * 方法一 使用这种配置,在为“一端”添加“多端”时,不会修改“多端”的外键。在“一端”加载时,不会得到“多端”。如果使用延迟加载,在读“多端”列表时会出异常,立即加载在得到多端时,是一个空集合(集合元素为0)。
- * “一端”配置
- * @OneToMany(mappedBy=”“多端”的属性”)
- * public List<“多端”类> get“多端”列表(){return “多端”列表}
- * “多端”配置参考@ManyToOne.
- * 方法二
- * “一端”配置
- * @OneToMany(mappedBy=”“多端”的属性”)
- * @MapKey(name=”“多端”做为Key的属性”)
- * public Map<“多端”做为Key的属性的类,主表类> get“多端”列表(){return “多端”列表}
- * “多端”配置参考@ManyToOne.
- * 方法三 使用这种配置,在为“一端”添加“多端”时,可以修改“多端”的外键。
- * “一端”配置
- * @OneToMany
- * @JoinColumn(name=”“多端”外键”)
- * public List<“多端”类> get“多端”列表(){return “多端”列表}
- * “多端”配置参考@ManyToOne.
相关推荐
全国大学生软件测试大赛Web应用测试(二)Selenium功能测试环境配置
全国大学生软件测试大赛Web应用测试(二)Selenium功能测试环境配置指南配置JAVA配置mooctest配置ChromeDriver配置SeleniumSelenium的使用 环境配置指南 配置JAVA 首先进入JDK8官方安装地址 然后找到Windows 64位 jdk8 点击下载(这里下载需要登录Orcale 账户) 下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE,一并安装就可以了。 安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为 D:\java\jav
Hibernate简单讲解
所谓的ORM就是利用描述对象和数据库表之间映射的元数据,自动把java应用程序中的对象持久化到关系型数据库的表中。通过操作java对象,就可以完成对数据库表的操作。可以把ORM理解为关系型数据和对象的一个纽带,开发人员只需关注纽带一段映射的对象即可。Hibernate框架使用ORM思想对数据库进行crud操作在web阶段学习的javabean,更准确的叫法应该是实体类ORM:Object Relational Mapping,对象关系映射。让实体类和数据库表对应,让实体类属性和表中字段对应。
REALTEK PKE8710ECF开发板入手试玩(一)
REALTEK PKE8710ECF开发板入手试玩
J2EE框架——Hibenate简介
Hibernate作为SSH架构中和数据库直接通信的持久化框架,作用非常重要,Hibernate作为Web应用的底层,实现了对数据操作的封装,是转变传统JDBC操作数据库的方式一.ORM简介ORM即Object/Relation Mapping对象关系映射,ORM对数据细节的访问进行封装,可以通过映射实现数据操作转换成对象的操作,当使用面向对象的方式来操作持久化对象时,ORM框架能自动将这些操作装换
【71页PPT】工业40及智能制造解决方案(附下载方式)
2013年,工业4.0平台发布白皮书,正式确立其发展战略。工业4.0不仅是技术的升级,更是制造业思维的重构。工业4.0的核心是通过信息物理系统(CPS)实现工厂内外的互联,构建高度灵活的个性化生产模式。它不仅是技术革新,更是一种生产方式的变革,使传统行业界限模糊化,催生新的商业模式和合作形式。德国作为制造业强国,其GDP的25%和出口总额的60%依赖制造业,因此工业4.0成为其维持全球领先地位的重要战略。CPS是工业4.0的基石,通过计算、通信与控制技术(3C)实现物理世界与信息世界的深度融合。
Aveva Marine C# 二次开发入门001
1# 引用 C:\AVEVA\Marine\OH12.1.SP4\Aveva.ApplicationFramework.dll C:\AVEVA\Marine\OH12.1.SP4\Aveva.ApplicationFramework.Presentation.dll 2# 引用命名空间, using Aveva.ApplicationFramework.Presentation;usi...
映射的理解,关于hibenate和mybatis的区别理解
一、映射的理解 在数学上的理解,简单来说就是函数f(x),这个f就是映射。 也就是说这是指x和y之间的对应关系。 比如,y=f(x)=x+2,就是说x和y的对应关系(也可以理解为x"形成"y的这个方式或者动作)就是x+2。 在编程中,映射(ORMapping)的理解: 比如说,把某个对象映射到数据
基于VLFM的中文指令视觉语言导航系统设计与实现
文章摘要 本文介绍了一个基于VLFM(视觉语言边界地图)的中文指令视觉语言导航系统设计与实现。该系统采用模块化架构,包含三维场景渲染、URDF机器人仿真、VLFM导航引擎、中文指令解析和PyQt图形界面五大核心模块。系统支持自定义GLB场景模型和URDF机器人模型,通过transformers和langchain实现中文自然语言指令解析,利用VLFM算法进行语义导航决策。技术实现上详细介绍了GLB模型加载器开发、URDF机器人控制、VLFM导航算法集成以及PyQt界面设计。该系统在Ubuntu环境下运行,依
hibernate简介介绍
1.Hibernate介绍 1.2Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了较为轻量级的对象封装,它将entity数据库表建立映射关系,是个全自动的orm框架,Hibernate可以自动生成SQL语句,自动执行使得java程序员可以随心所欲的使用面向对象编程思维来操作数据库,通过操作对象的方式来操作数据库极大的提高开发的效率.Habernate可以应运在任何使用JDBC的场合是持久层的一款框架用来完成数据持久化的重任.ORM(object RelationMapping):对象
【OD统一考试(B卷)】比赛的冠亚季军,Python 解答
比赛的规则是 0 号和 1 号比赛,2 号和 3 号比赛,以此类推,每一轮,相邻的运动员进行比赛,获胜的进入下一轮,实力值大的获胜,实力值相等的情况,id 小的情况下获胜,轮空的直接进入下一轮。第一轮比赛,id 为 0 实力值为 2 的运动员和 id 为 1 实力值为 3 的运动员比赛, 1 号胜出进入下一轮争夺冠亚军,id 为 2 的运动员和 id 为 3 的运动员比赛,3 号胜出进入下一轮争夺冠亚军;2 号与 0 号,比赛进行季军的争夺,2 号实力值为 4,0 号实力值 2,故 2 号胜出,得季军。
手把手教您同花顺如何设置大盘分时均价线
本文将手把手教你如何在同花顺PC端开启大盘指数分时图📈
SSH框架笔记之(Hibenate基础篇)
IDEA构建hibernate的逆向工程(参阅下面文章): https://blog.youkuaiyun.com/xufan601391682/article/details/79544620 附上hibernate.cfg.xml <?xml version="1.0" encoding="GBK"?> <!-- 指定Hibernate配置文件的...
AI Agent驱动的多模态情感分析方法:从BERT到Vision Transformer的探索
情感分析(Sentiment Analysis)是自然语言处理(NLP)与计算机视觉(CV)中一项重要任务。传统的情感分析主要依赖于文本数据,但在现实应用中,情感往往通过 语言、语音、表情、姿态 等多模态信号共同传达。因此,结合 多模态深度学习 的 AI Agent 在情感理解中具有广阔的前景。
Hibernate 注释
到现在为止,你已经看到 Hibernate 如何使用 XML 映射文件来完成从 POJO 到数据库表的数据转换的,反之亦然。Hibernate 注释是无需使用 XML 文件来定义映射的最新方法。你可以额外使用注释或直接代替 XML 映射元数据。 Hibernate 注释是一种强大的来给对象和关系映射表提供元数据的方法。所有的元数据被添加到 POJO java 文件代码中,这有利于用户在开发时更好的理解表的结构和 POJO。 如果你想让你的应用程序移植到其它 EJB 3 的 ORM 应用程序中,您必须使用注释
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
Hibernate使用注释
可以使用注释创建hibernate应用程序。 有许多注释可用于创建hibernate应用程序,如@Entity,@Id,@Table等。 Hibernate注释基于JPA 2规范,并支持所有功能。所有JPA注释都在javax.persistence.*包中定义。 Hibernate EntityManager实现由JPA规范定义的接口和生命周期。 使用hibernate注释的核心优点...
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
hibernate jar包_Hibernate 注释
注释到现在为止,你已经看到 Hibernate 如何使用 XML 映射文件来完成从 POJO 到数据库表的数据转换的,反之亦然。Hibernate 注释是无需使用 XML 文件来定义映射的最新方法。你可以额外使用注释或直接代替 XML 映射元数据。Hibernate 注释是一种强大的来给对象和关系映射表提供元数据的方法。所有的元数据被添加到 POJO java 文件代码中,这有利于用户在开发时更好...
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
xml注释掉一段代码_Hibernate 注释
注释到现在为止,你已经看到 Hibernate 如何使用 XML 映射文件来完成从 POJO 到数据库表的数据转换的,反之亦然。Hibernate 注释是无需使用 XML 文件来定义映射的最新方法。你可以额外使用注释或直接代替 XML 映射元数据。Hibernate 注释是一种强大的来给对象和关系映射表提供元数据的方法。所有的元数据被添加到 POJO java 文件代码中,这有利于用户在开发时更好...
Hibernate的注释开发(详细)
Hibernate注释映射 一、PO类的基本注释 1、@Entity:将pojo类标记成实体,可以指定一个name属性,指定实体类的名称。默认一该类的类名作为实体类的名称 2、@Table:注释改持久化类所映射的表 属性有① catalog 将持久化类映射的表放入指定的catalog中,如果没指定,则放入默认的catalog ② index为持久化类映射的表设
hibernate注释说明
在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准。它非常强大、灵活,而且具备了优异的性能。在本文中,我们将了解如何使用Java 5 注释来简化Hibernate代码,并使持久层的编码过程变得更为轻松。 传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML映射文件,并且在启动时进行加载。创建这些映射有很多方法,可以从已
jpa 表注释和字段注释_JPA注释–Hibernate注释
jpa 表注释和字段注释JPA annotations are used in mapping java objects to the database tables, columns etc. Hibernate is the most popular implement of JPA specification and provides some additional annotations....
Hibernate 3注释简介
Hibernate 3注释简介在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准。它非常强大、灵活,而且具备了优异的性能。在本文中,我们将了解如何使用Java 5 注释来简化Hibernate代码,并使持久层的编码过程变得更为轻松。 传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行
如何使用Hibernate Tools生成Hibernate映射文件和注释
在本文中,我们向您展示如何使用Hibernate / JBoss Tools从数据库自动生成Hibernate映射文件(hbm)和注释代码。 本文中的工具 Eclipse v3.6(Helios) JBoss / Hibernate工具v3.2 甲骨文11g JDK 1.6 注意 在继续之前,请在Eclipse IDE中安装Hibernate / JBoss工具 。...
Hibernate注释简介
Hibernate 3注释简介 在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准。它非常强大、灵活,而且具备了优异的性能。在本文中,我们将了解如何使用Java 5 注释来简化Hibernate代码,并使持久层的编码过程变得更为轻松。 传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。创建...
让Hibernate生成的DDL脚本自动增加注释
我们知道可以通过Hibernate对象自动生成DDL建表语句,通过PowerDesigner工具可以反向工程生成数据字典,但是在生成的DDL中一直不能写上中文的注释,这就使我们生成的数据字典不具有可用性。 这个假期宅在家里调试代码,发现Hibernate的Dialect,Table,Column的映射中已经做了comment的处理,只是Hibernate团队认为这个功能的重要性太小,一直没有时间
9606



被折叠的 条评论
为什么被折叠?



