如何使用主键自动增量存储数据库中的值列表 我的道具有这个主键
@Id
@GeneratedValue(generator = "increment")
@Column(name = "ParamKey")
public long getParamKey() {
return paramKey;
}
public void setParamKey(long paramKey) {
this.paramKey = paramKey;
}
它插入一行并显示异常
java.lang.RuntimeException: a different object with the same identifier value was already associated with the session:
答案 0 :(得分:0)
将您的代码更改为:
//Declaration
@Id
@GenericGenerator(strategy = "increment")
@Column(name = "ParamKey")
private int paramKey;
//Getter
public long getParamKey(){
return paramKey;
}
答案 1 :(得分:0)
尝试在类中设置主键,代表您的表
@Id
@GeneratedValue
private long id;
答案 2 :(得分:0)
检查表格中的id
列是否autoincrement
选项为true
。 (例如,在MySQL GUI中)然后使用前面描述的生成类型AUTO
。
答案 3 :(得分:0)
这可能是问题所在: -
实际上,当您部署应用程序时,请暂停存储最大ID 并连续将其增加1 。但是,如果您直接在数据库中插入值,那么它会导致问题因为你的hibernate没有意识到这件事。
因此,在下次插入时,它会将sequence_id + 1分配给下一行,但它已经存在于数据库中 所以它会给你主键约束错误。