我有一个实体,我想指定一个限制,即两个字段应该具有唯一的对值。例如。一个字段是所有者,另一个是名称,我想要一个限制,(所有者,名称)的组合应该是唯一的。但我不想让这些成为复合主键:
@Entity
@Table(name="keyfile")
public class KeyFile {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@ManyToOne @ForeignKey(name="FK_SIGNATUREID_USER")
private User owner;
@Column(nullable=false,length=80)
private String name;
}
如何使用Hibernate注释指定此限制?
答案 0 :(得分:5)
尝试这里提到的解决方案:
https://forum.hibernate.org/viewtopic.php?p=2370666
原因是
@Entity
@Table(name="keyfile",
uniqueConstraints = {@UniqueConstraint(columnNames={"owner", "name"})}
public class KeyFile { ... }