列の制約の定義
一意の制約が 1 つのフィールドのみに基づいている場合は常に、その列で @Column(unique=true) を使用できます。
personNumberフィールドに一意の制約を定義しましょう。
@Column(unique=true)
private Long personNumber;
スキーマ作成プロセスを実行すると、ログから検証できます。
[main] DEBUG org.hibernate.SQL -
alter table Person add constraint UK_d44q5lfa9xx370jv2k7tsgsqt unique (personNumber)
一意の制約の定義
JPA は @UniqueConstraint アノテーションを使用してそれを実現するのに役立ちます。uniqueConstraints 属性の下の @Table アノテーションでそれを行います。列の名前を指定することを忘れないでください。
@Table(uniqueConstraints = { @UniqueConstraint(columnNames = { "personNumber", "isActive" }) })
スキーマが生成されたら、それを検証できます。
[main] DEBUG org.hibernate.SQL -
alter table Person add constraint UK5e0bv5arhh7jjhsls27bmqp4a unique (personNumber, isActive)