我认为(通常)可以对表列具有唯一约束,但只有那些非空的(例如,我在此处阅读https://stackoverflow.com/a/767702/3733425)
但它可能在休眠吗?
这里我有一个包含3个字段(a,b,c)的实体,它们应该是唯一的。
但是如果a为null(这是非常常见的),那么约束不应该应用
换句话说,可以有很多(0,b,c)行,但只有唯一的(a!= 0,b,c)
@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"a", "b", "c"}))
public class Widget {
@Id
@GeneratedValue;
private Long id;
@Basic(optional = true)
private Integer a;
@Basic(optional = false)
private String b;
@Basic(optional = false)
private Long c;
...
}