[英]Difference between Hibernate Automatic value generation strategies?
这两种自动价值生成策略有什么区别?
1. @GeneratedValue
2. @GeneratedValue(strategy=IDENTITY)
如下所示:
AUTO指示持久性提供程序应为特定数据库选择适当的策略。
IDENTITY指示持久性提供程序必须使用数据库标识列为实体分配主键。
SEQUENCE指示持久性提供程序必须使用数据库序列列为实体分配主键。
TABLE表示持久性提供程序必须使用基础数据库表为实体分配主键,以确保唯一性。
在此处参考API http://docs.oracle.com/javaee/5/api/javax/persistence/GenerationType.html
如果未设置strategy属性,则默认为AUTO
。 从Hibernate文档中:
AUTO:根据基础数据库的功能选择IDENTITY,SEQUENCE或TABLE。
区别在于@GeneratedValue使用AUTO策略作为默认策略,而@GeneratedValue(strategy = IDENTITY)使用IDENTITY策略
这是策略的不同选择
AUTO-指示持久性提供程序应为特定数据库选择适当的策略。
IDENTITY-表示持久性提供程序必须使用数据库标识列为实体分配主键。
SEQUENCE-指示持久性提供程序必须使用数据库序列列为实体分配主键。
TABLE-表示持久性提供程序必须使用基础数据库表为实体分配主键,以确保唯一性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.