1

我正在使用表生成器策略来生成主键。最近我升级到 Hibernate 5,我遇到了主键生成负值的问题。数据库:PostgreSQL 9.3,休眠 5.0.2

这是我的注释的样子。

@Id
@TableGenerator(name = "EMP_ID",
                table = "ID_GENERATOR",
                pkColumnName = "GEN_KEY",
                valueColumnName = "GEN_VALUE",
                pkColumnValue = "EMP_ID",
                allocationSize = 10,
                initialValue = 1)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "EMP_ID")
@Column(name = "EMP_ID", unique = true, nullable = false)
private long empId;

有人可以帮我吗?

4

1 回答 1

0

检查数据库中的 GEN_VALUE 是否小于实体类中的 initialValue 属性会产生此问题,例如:

如果列值 GEN_VALUE 为 0 且 initialValue 为 1,则生成负值。要解决此问题,请将 initialValue 与 GEN_VALUE 相等。

问候,

于 2021-03-30T19:54:32.093 回答