我将生成器设置为hbm文件中的“增量”,并将auto_increment内容放在数据库表中。这个创意展示的问题..。
这两件事都是矛盾的??
发布于 2011-07-21 13:46:12
是的,它们是相互冲突的,没有道理。
当使用hibernate内置生成器“增量”时,hibernate通过从启动时的最大主键值进行计数来生成标识符,在多个JVM中不安全,并且使用数据库AUTO_INCREMENT --它是为新行生成唯一标识的数据库。
在mySQL DB中,如果使用AUTO_INCREMENT,则应该在映射中使用标识以使数据库安全地生成唯一标识。
从hibernate文档
增量
生成类型为长、短或int的标识符,这些标识符只有在没有其他进程将数据插入到同一表中时才是唯一的。不要在群集中使用。
恒等
支持DB2、MySQL、MySQL、Sybase和HypersonicSQL中的标识列。返回的标识符类型为长、短或int。
更多信息
Hibernate博士5.1.4.1节。生成器
增量文档
https://stackoverflow.com/questions/6776308
复制相似问题