[java] JPA의 여러 고유 제약

JPA를 사용하여 서로 다른 열 집합에 여러 개의 고유 제약 조건이 있어야 함을 지정하는 방법이 있습니까?

@Entity
@Table(name="person",
       uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"}))
public class Person {
    // Unique on code and uid
    public String code;
    public String uid;

    // Unique on username
    public String username;

    public String name;
    public String email;
}

최대 절전 모드 특정 주석을 보았지만 여전히 최대 절전 모드와 데이터 핵 사이를 결정하고 있으므로 공급 업체별 솔루션을 피하려고합니다.



답변

@Table의 속성은 uniqueConstraints실제로 이들의 배열을 받아들입니다. 귀하의 예제는 단일 요소가있는 배열의 속기 일뿐입니다. 그렇지 않으면 다음과 같이 보일 것입니다.

@Table(name="person",  uniqueConstraints={
   @UniqueConstraint(columnNames={"code", "uid"}),
   @UniqueConstraint(columnNames={"anotherField", "uid"})
})

고유 제약 조건이 하나의 필드 만 기반으로 할 때마다 @Column(unique=true)해당 열에서 사용할 수 있습니다 .


답변