【发布时间】:2019-08-26 03:22:00
【问题描述】:
我正在使用以下代码来定义MyEntity,
@Entity
@Table(name = "MY_TABLE")
public class MyEntity {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "MY_TABLE_ID")
private Integer myTableId;
@Column(name = "MY_TABLE_NM")
private String myTableName;
//Getters Setters
}
对于我的应用程序启动后的第一个POST,我创建MyEntity 一切正常,MY_TABLE_ID 从 1 开始并按预期工作。
我的问题是,如果有人在我执行 POST 之前手动插入数据,那么我会得到 重复键异常,因为 myTableId 输入为 1,它已经存在。
我的主要问题是我现在无法创建database sequence 以使用GenerationType.SEQUENCE 来解决此问题,因为现在无法更改数据库。
我尝试了GenerationType、TableGenerator 的各种组合,但我无法成功解决。
将initialValue 设置为更大的数字以避免重复值可以暂时解决我的问题,但我也无法这样做。
如果有人可以通过initialValue 和AUTO 帮助我,或者在不更改数据库的情况下给我一些其他更好的解决方案,那就太好了:)
【问题讨论】:
-
表是如何设置的?
MY_TABLE_ID是身份列吗? -
是的,
MY_TABLE_ID是一个标识列。
标签: java hibernate jpa post spring-data-jpa