2010-07-09 5 views
3

두 개의 필드가 고유 한 쌍 값을 가져야한다는 제한을 지정하고자하는 엔티티가 있습니다. 예 : 한 필드가 소유자이고, 다른 필드가 이름이고, (소유자, 이름)의 조합이 고유해야한다는 제한이 필요합니다.Hibernate에서 "unique together"제한 지정하기

@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; 
} 

가 어떻게 하이버 네이트 주석이 제한을 지정합니까 :하지만 이러한 복합 기본 키를 만들 싶지 않아?

답변

4

이 솔루션은 여기에 언급보십시오 : 인체 공학적

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

소유자가 외래 키이기 때문에이

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

, 나는 COLUMNNAMES = { "OWNER_ID", "이름으로 변경했다 "} –