Hibernate 休眠生成器增量与表自动增量冲突

Hibernate 休眠生成器增量与表自动增量冲突,hibernate,generator,Hibernate,Generator,我在hbm文件中将generator设置为“increment”,并且我还将auto_increment的东西放在数据库表中。 这是一个有争议的问题 这两件事是矛盾的 是的,它们相互冲突,毫无意义 当使用hibernate内置生成器“增量”时,是hibernate通过从启动时的最大主键值开始计数来生成标识符,在多JVM中不安全,并且使用数据库自动增量,是数据库为新行生成唯一标识 在mySQL数据库中,如果使用AUTO_INCREMENT,那么应该在映射中使用identity,让数据库安全地生成唯

我在hbm文件中将generator设置为“increment”,并且我还将auto_increment的东西放在数据库表中。 这是一个有争议的问题


这两件事是矛盾的

是的,它们相互冲突,毫无意义

当使用hibernate内置生成器“增量”时,是hibernate通过从启动时的最大主键值开始计数来生成标识符,在多JVM中不安全,并且使用数据库自动增量,是数据库为新行生成唯一标识

在mySQL数据库中,如果使用AUTO_INCREMENT,那么应该在映射中使用identity,让数据库安全地生成唯一的identity

来自hibernate文档

增量

生成仅唯一的long、short或int类型的标识符 当没有其他进程将数据插入同一个表时。不要 在集群中使用

身份

支持DB2、MySQL、MS SQL Server、Sybase和 HypersonicSQL。返回的标识符的类型为long、short或int

更多信息