如果违反了2列的唯一约束,则进行Hibernate更新

时间:2018-11-30 22:15:55

标签: hibernate

我有一个问题,找不到任何答案。

我有一个拥有3个成员的实体

@ManyToOne(optional = false)
@JoinColumn(name = "col1")
private Class1 class1;

@Column(nullable = false)
private Integer lvl;

@ManyToOne(optional = false)
@JoinColumn(name = "col2")
private Class2 class2;

对于这个实体,我想使用唯一的约束来确保这两个外键的组合只能出现一次。所以我加了:

@Table(uniqueConstraints = {
    @UniqueConstraint(columnNames = {"col1", "col2"})
})

在类定义之上。

当唯一约束被违反时,我如何告诉hibernate使用新的lvl更新旧条目,如果不违反则创建新行?因为目前如果我调用saveOrUpdate()会引发异常?

预先感谢:D

0 个答案:

没有答案