web-dev-qa-db-ja.com

複数の列にわたる一意の制約

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アノテーションはありますか?

前もって感謝します

38
DaveB

挿入/更新の前に一意性をチェックするHibernateアノテーションはありません。ただし、自動データベース作成が使用される場合、データベースにこのような制約を生成する注釈があります。

 @Table(
    name="ACTIVE_BAND", 
    uniqueConstraints=
        @UniqueConstraint(columnNames={"active_band_user", "active_band_date"})
)
77
Mikko Maunu