hibernate加jpa自带一共14种。
1.native
@Id @GeneratedValue(generator = "gen") @GenericGenerator(name = "gen", strategy = "native")
或
@Id @GeneratedValue(strategy=GenerationType.AUTO)
2.table : org.hibernate.id.enhanced.TableGenerator
@Id @GeneratedValue(strategy=GenerationType.TABLE, generator="empGen") @TableGenerator( name="empGen", table="ID_GEN", pkColumnName="GEN_KEY", valueColumnName="GEN_VALUE", pkColumnValue="EMP_ID", allocationSize=1) public int id;
3.uuid : org.hibernate.id.UUIDHexGenerator
最高生成36位长唯一字符串(加上分隔符),默认32位
@Id @GeneratedValue(generator = "gen") @GenericGenerator( name = "gen", strategy = "uuid", parameters={ //@Parameter(name="separator",value="自定义分隔符,长度1位") }) private String id;
4.hilo : org.hibernate.id.TableHiLoGenerator
@Id @GeneratedValue(generator="gen") @GenericGenerator( name="gen", strategy="hilo", parameters={ //@Parameter(name="table",value="hibernate_unique_key"), //@Parameter(name="column",value="next_hi"), //@Parameter(name="schema",value="schema"), //@Parameter(name="catalog",value="catalog"), //@Parameter(name="max_lo",value="20") }) private int id;
注释部分可以做相应的修改
5.assigned : org.hibernate.id.Assigned
@Id private int id;
6.identity : org.hibernate.id.IdentityGenerator
@Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int id;
7.select : org.hibernate.id.SelectGenerator
8.sequence : org.hibernate.id.SequenceGenerator
@Id @GeneratedValue(generator="gen") @GenericGenerator( name="gen", strategy="sequence", parameters={ //@Parameter(name="sequence",value="hibernate_sequence"), //@Parameter(name="parameters",value=""), //@Parameter(name="schema",value=""), //@Parameter(name="catalog",value="") }) private int id;
或
@Id @GeneratedValue(strategy=GenerationType.SEQUENCE) private int id;
支持DB2.H2.HSQL.Informix.Ingres.Interbase.Mckoi.Mimer.Oracle.Postgre.RDMSOS2200.SAPDB.TimesTen
9.seqhilo : org.hibernate.id.SequenceHiLoGenerator
@Id @GeneratedValue(generator="gen") @GenericGenerator( name="gen", strategy="seqhilo", parameters={ //@Parameter(name="sequence",value="hibernate_sequence"), //@Parameter(name="parameters",value=""), //@Parameter(name="schema",value=""), //@Parameter(name="catalog",value=""), //@Parameter(name="max_lo",value="20") }) private int id;
支持DB2.H2.HSQL.Informix.Ingres.Interbase.Mckoi.Mimer.Oracle.Postgre.RDMSOS2200.SAPDB.TimesTen
10.increment : org.hibernate.id.IncrementGenerator
@Entity @Table(name = "id_increment_gen") public class IncrementGen { @Id @GeneratedValue(generator="gen") @GenericGenerator( name="gen", strategy="increment", parameters={ @Parameter(name="tables",value="id_increment_gen"), //@Parameter(name="identity_tables",value="id_increment_gen"), @Parameter(name="column",value="id"), //@Parameter(name="target_column",value="id"), //@Parameter(name="schema",value=""), //@Parameter(name="catalog",value="") }) private int id;其中tables参数和identity_tables参数互斥,tables参数优先。column参数和target_column参数互斥, column参数优先,支持多表,以","分隔,会生成类似如下的语句:
select max (ids_.id) from ( select id from id_increment_gen ) ids_多表时为:
select max (ids_.id) from ( select id from id_increment_gen1 union select id from id_increment_gen2 ) ids_
11.foreign : org.hibernate.id. ForeignGenerator
12.guid : org.hibernate.id. GUIDGenerator
@Id @GeneratedValue(generator = "gen") @GenericGenerator(name = "gen", strategy = "guid") private String id;
支持mysql,oracle,sybase
13.uuid.hex : org.hibernate.id.UUIDHexGenerator // uuid.hex is deprecated
14.sequence-identity : org.hibernate.id.SequenceIdentityGenerator
15.自定义
可同时实现接口org.hibernate.id.IdentifierGenerator,org.hibernate.id.Configurable
@Id @GeneratedValue(generator = "gen") @GenericGenerator(name = "gen", strategy = "xg.CustGenerator") private String id;
strategy填写具体类名
相关推荐
总结一下关于JPA的主键生成策略,JPA是用@GeneratedValue标记来注释的。一般的我把主键生成分成两大类。第一个就是简单的单字段主键类型,一个就是复杂的复合主键类型。我们分2种情况分别讨论。 第一种单字段主键...
04_JPA详解_第一个JPA实例与JPA主键生成策略.zip
NULL 博文链接:https://1028826685.iteye.com/blog/1523349
只要1分就可获得JPA主键生成策略,很全的哦
04_传智播客JPA详解_第一个JPA实例与JPA主键生成策略
持久化类主键生成策略+例子 jpa 4种 hibernate 13种
JPA用于整合现有的ORM技术,可以简化现有Java EE和Java SE应用对象持久化的开发工作,实现ORM的统一。JPA详解视频教程 第4讲 第一个JPA实例与JPA主键生成策略.avi
JPA主键策略(针对数据库自增字段重置后无效检查项) JPA主键生成策略会影响数据库自增字段的重置
Java Web高级编程 涵盖WebSockets、Spring Framework、JPA Hibernate和Spring Security, 有目录,很清晰
本资源为原创. 其中剖析了hibernate+JPA对主键的生成方式的分类,以及在真实项目中如何使用,并且剖析各种数据库间的主键序列(sequence)原理以及使用.
velocity spring jpa hibernate 整合
JPA-Hibernate包, JPA-Hibernate包, JPA-Hibernate包, JPA-Hibernate包, JPA-Hibernate包, JPA-Hibernate包
jpa代码自动生成工具- 自动生成domain/dao/service/controller
JPA Hibernate 帮你详细解释jpa中注解的详细用法 帮你更好的去了解和运用
jpa + hibernate 简单列子实现和junit测试 完整jar包都已测试过。
JPA 联合主键实例 博文链接:https://zmx.iteye.com/blog/512468
JPA注解创建数据库表 和hibernate.cfg.xml 建表
基于springboot最新版本2.1.4.RELEASE,采用jpa为dao层框架,配置redis(redisson)为hibernate的二级缓存。
springmvc spring jpa Hibernate
spring boot jsp mvc jpa hibernate mysql 示例 sample