【发布时间】:2017-10-03 20:07:41
【问题描述】:
所以我试图添加一个使用两列的唯一约束。我在 db 中添加了唯一约束,我有以下 Java 代码
@Entity
@Table(
name = "test_table",
uniqueConstraints = @UniqueConstraint(
columnNames = {
"other_table_id",
"sort_order"
},
name = "my_unique_constraint")
)
class SomeTable {
private String label;
@ManyToOne(optional = false)
@JoinColumn(name = "other_table_id", nullable = false)
private OtherTable otherTable;
@NotNull
@Column(name = "sort_order", nullable = false)
private int sortOrder;
}
当我修改此表的排序并更新我得到的记录时
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry '1-2' for key 'my_unique_constraint'
如何实现@UniqueConstraint 以免出现此类错误。
【问题讨论】:
-
你能提供你的修改代码吗?
-
你的意思是完整的代码吗?
-
我想知道更新是如何完成的。你是真的做更新还是真的试图插入第二条记录。
-
我调用hibernate saveOrUpdate来更新实体
-
两者都是更新..数据已经使用休眠保存方法插入。