rdj*_*dj7 4 java post hibernate jpa spring-data-jpa
我正在使用以下代码来定义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
}
Run Code Online (Sandbox Code Playgroud)
对于POST
我的应用程序启动后的第一次,我创建MyEntity
一切正常,MY_TABLE_ID
从 1 开始并按预期工作。
我的问题是,如果有人在我做我之前手动插入数据,POST
那么我会得到重复的键异常,因为myTableId
输入为 1 已经存在。
我的主要问题是我无法创建database sequence
用于GenerationType.SEQUENCE
now 解决此问题,因为现在无法更改数据库。我尝试了 的各种组合GenerationType
,TableGenerator
但我无法成功解决它。
设置initialValue
更大的数字以避免重复值可以暂时解决我的问题,但我也无法做到。
如果有人可以帮助我initialValue
与AUTO
,或给我不数据库更改一些其他更好的解决方案将是巨大的:)
作为MY_TABLE_ID
标识列,以下注释将起作用。
@Entity
@Table(name = "MY_TABLE")
public class MyEntity {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY) // <-- IDENTITY instead of AUTO
@Column(name = "MY_TABLE_ID")
private Integer myTableId;
@Column(name = "MY_TABLE_NM")
private String myTableName;
//Getters Setters
}
Run Code Online (Sandbox Code Playgroud)
事务提交后,标识列将自动分配一个值。您不必为标识列设置任何值,因为分配值是数据库的工作。因此,您也不需要考虑任何初始值(对于标识列完全忘记它们)
归档时间: |
|
查看次数: |
5255 次 |
最近记录: |