在Hibernate中指定“一起独特”的限制

时间:2010-07-09 11:01:47

标签: hibernate

我有一个实体,我想指定一个限制,即两个字段应该具有唯一的对值。例如。一个字段是所有者,另一个是名称,我想要一个限制,(所有者,名称)的组合应该是唯一的。但我不想让这些成为复合主键:

@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注释指定此限制?

1 个答案:

答案 0 :(得分:5)

尝试这里提到的解决方案:

https://forum.hibernate.org/viewtopic.php?p=2370666

原因是

@Entity
@Table(name="keyfile",
       uniqueConstraints = {@UniqueConstraint(columnNames={"owner", "name"})}
public class KeyFile { ... }