我正在浏览Hibernate参考指南的Id生成部分和"使用Hibernate的java持久性"
Hibernate和JPA结合使用有很多选项.
我正在寻找有关如何选择特定id生成策略的进一步文档.
我也在寻找引爆点.
例如,希望hilo策略可以减少争用.我假设必须有与此选择相关的权衡.
我希望接受有关权衡的教育.
有没有可用的文献?
目前我有三个表:公司,集团,人.
公司连接的三个表是一对多的Group,Group是一对多的Person.
在所有三个类(Company.java,Group.java,Person.java)中,我用这种方式编写了自动增量唯一ID:
@Id
@Column(name = "id")
@GeneratedValue
private int id;
Run Code Online (Sandbox Code Playgroud)
然后我按此顺序实例化所有三个类:Company,Group,Person.
将这些对象保存到我的数据库后,我注意到表中的id有问题.
显然,而不是按顺序1,2,3,4等增加公司的ID; 它在1,4,7,10增加......
在同样的逻辑中,Group的id为2,5,8,11 ......
我该怎么做才能防止@GeneratedValue计数器在三个不同的表之间共享?我应该使用其他或不同的标签吗?
谢谢.
@Id 注释在数据库中添加了两个约束,我对吗?
?我在互联网上看到了很多语法类似的例子
@Id
@Column(name="xxx",nullable=false)
BigInteger id
Run Code Online (Sandbox Code Playgroud)
它是正确的?我真的需要这个 nullable=false 吗?