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"})
})
_
一意制約が1つのフィールドのみに基づいている場合は、その列で@Column(unique=true)
を使用できます。