run*_*ter 2 mysql hibernate jpa-2.0
@TableGenerator(name="Emp_Gen",table="ID_GEN", pkColumnName = "GEN_NAME",pkColumnValue = "Employee_GEN",valueColumnName = "GEN_VAL",initialValue = 1000,allocationSize = 100)
一切都好,但initialValue没有效果.下面是名为"employee"的表(注意:使用MySql,Hibernate-JPA)

我认为第一行'id'是1000,而不是1,对吧?但如果它是1,那么第二行应该是101 ....谁可以帮助我一个愚蠢的人?
它的第一个值是1而不是1001,即Hibernate bug HHH-4228,状态无法修复.在您的情况下,正确的第一个值是1001而不是1000,因为initialValue初始化存储返回的最后一个值的列(而不是要返回的下一个值).
在persistence.xml中使用以下(也在错误报告中建议)将修复第一个值的问题:
<property name="hibernate.id.new_generator_mappings" value="true"/>
Run Code Online (Sandbox Code Playgroud)
意义allocationSize可能会被误解.这不是增加的步骤.它表示从表中使用一个数据库查询分配了多少个值.这是相当优化的,以便每当新实体需要id值时避免额外的查询.
副产品是重新启动应用程序导致通常漏洞的顺序:
| 归档时间: |
|
| 查看次数: |
1980 次 |
| 最近记录: |