2012-08-14 5 views
23

PostgreSQL 9 데이터베이스와 함께 SEAM 2/Hibernate를 사용하고 있습니다. 나는 다음과 같은 테이블을 가지고다중 열에 대한 고유 제한 조건

Active Band 
=========== 
active_band_id serial 
active_band_user text 
active_band_date timestamp 
active_band_process integer 

나는 각각의 새로운 항목이 active_band_user 및 active_band_date의 고유 한 조합을 가지고 보장하는 제약 조건을 추가하고 싶습니다.

잠재적으로 초당 많은 시도가 삽입 될 수 있으므로 가능한 한 효율적이어야합니다. 엔티티 매핑에 사용할 수있는 SEAM/hibernate 주석이 있습니까? 사전

+0

이 http://stackoverflow.com/questions/3211972/specifying-restrictions-unique-together-in를 복제 나타납니다 그러나 자동 데이터베이스 생성을 사용하는 경우 데이터베이스에 이러한 제약 조건을 생성 주석이있다 -hibernate –

답변

52

삽입/업데이트하기 전에 고유성 검사에는 최대 절전 모드 주석이 없습니다에서

감사합니다.

@Table(
    name="ACTIVE_BAND", 
    uniqueConstraints= 
     @UniqueConstraint(columnNames={"active_band_user", "active_band_date"}) 
) 
+0

필자는 Eclipse에서 '주석 속성 Table.uniqueConstraints의 값이 @ @ javax.persistence.UniqueConstraint 주석이어야합니다.'를 지원한다고 생각하지 않습니다. 이 방법은 SQL 스키마에서 제약 조건을 생성합니까? – DaveB

+0

예. 지원됩니다. 여기에 설명되어 있습니다. http://docs.oracle.com/javaee/6/api/javax/persistence/Table.html#uniqueConstraints%28%29 다른 문제가 틀림 없습니다. javax.persistence.UniqueConstraint는 임포트 되었습니까? –

+12

나는 이것을 몇 년 전에 알고 있지만, org.hibernate.annotations.Table이 아닌'javax.persistence.Table'을 사용하고 있는지 확인한다. Hibernate의'@Table'은'uniqueConstraints' 필드를 가지고 있지 않습니다. – Patrick