当前位置:  开发笔记 > 编程语言 > 正文

Hibernate实体跨表而不是每个表自动增加id

如何解决《Hibernate实体跨表而不是每个表自动增加id》经验,为你挑选了1个好方法。

目前我有三个表:公司,集团,人.

公司连接的三个表是一对多的Group,Group是一对多的Person.

在所有三个类(Company.java,Group.java,Person.java)中,我用这种方式编写了自动增量唯一ID:

@Id
@Column(name = "id")
@GeneratedValue
private int id;

然后我按此顺序实例化所有三个类:Company,Group,Person.

将这些对象保存到我的数据库后,我注意到表中的id有问题.

显然,而不是按顺序1,2,3,4等增加公司的ID; 它在1,4,7,10增加......

在同样的逻辑中,Group的id为2,5,8,11 ......

我该怎么做才能防止@GeneratedValue计数器在三个不同的表之间共享?我应该使用其他或不同的标签吗?

谢谢.



1> winter..:

这可能是因为hibernate为id序列生成了一个表.你在和哪个DB合作?MySQL的?或其他不使用序列的数据库?您可以尝试使用:

 @GeneratedValue(strategy = GenerationType.IDENTITY)

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有