@Id
@GeneratedValue(generator = "persistencegenerator")
@GenericGenerator(name = "persistencegenerator", strategy = "increment")
生成的SQL:
Hibernate:
select
max(id)
from
mybean
Hibernate:
insert
into
mybean
(name, id)
values
(?, ?)
在mybean表查询最大的ID,新插入的记录的ID在此基础上+1。
2.
@Id
@GeneratedValue(strategy=GenerationType.TABLE)
Jpa 自动生成主键的策略之一,用table 来存贮生成的主键
生成的SQL:
Hibernate:
insert
into
sys_user
(account, password, id)
values
(?, ?, ?)
在数据库中会生成一个hibernate_sequences的表,用来存放主键,保存的也是最大ID。
看结果:
我在数据库中插入一条记录:account=system2,password=system
![hibernate annotation之主键生成策略 - qincidong - qincidong的博客 hibernate annotation之主键生成策略 - qincidong - qincidong的博客](http://img.ph.126.net/sL1vKFsM0W2tQcqOrkuOrw==/3393743794201489898.jpg)