【发布时间】:2011-10-10 05:12:59
【问题描述】:
我在 hbm 文件中将生成器设置为“增量”,并且我还将 auto_increment 东西放入数据库表中。 此标准显示问题 ....
这两者有冲突吗? ?
【问题讨论】:
我在 hbm 文件中将生成器设置为“增量”,并且我还将 auto_increment 东西放入数据库表中。 此标准显示问题 ....
这两者有冲突吗? ?
【问题讨论】:
是的,它们是冲突的,没有意义..
当使用休眠内置生成器“增量”时,休眠通过从启动时的最大主键值计数来生成标识符,在多 JVM 中不安全,并且使用数据库 AUTO_INCREMENT 它是生成唯一标识的数据库新行。
在 mySQL DB 中,如果使用 AUTO_INCREMENT,您应该在映射中使用标识,以让数据库安全地生成唯一标识。
来自休眠文档
增量
生成只有唯一的 long、short 或 int 类型的标识符 当没有其他进程将数据插入同一个表时。不要 在集群中使用。
身份
支持 DB2、MySQL、MS SQL Server、Sybase 和 超音速 SQL。返回的标识符是 long、short 或 int 类型。
更多信息
Hibernate Doc section 5.1.4.1. Generator
My sql AUTO_INCREMENT documentation
【讨论】: