15

テーブル内のすべての行に 2 つのフィールドの一意の組み合わせがあることを確認し、エンティティ クラスの注釈を使用してこれを指定したいと考えています。@Table と @UniqueConstraint の組み合わせを使用してみましたが、どうやら間違っているようです。個別の列が一意であることを指定することしかできないようです (@Column の一意のプロパティを使用して既に指定できます)。列の組み合わせよりも。たとえば、フィールド A と B を持つテーブルに、A と B の一意の組み合わせを持つ行のみを含める必要があります。どちらのフィールド/列も一意である必要はありません。一意であるべきは 2 つの組み合わせです。

これが私がこれまでに試したことです。

@Table(name = "MY_TABLE", 
       uniqueConstraints = @UniqueConstraint(columnNames = 
                                             { "FIELD_A", "FIELD_B" }))

@Table(name = "MY_TABLE", 
       uniqueConstraints = { @UniqueConstraint(columnNames = 
                                               { "FIELD_A", "FIELD_B" }) })

誰かがこれを行う正しい方法を提案できますか? また、Hibernate 固有のアノテーションの代わりに JPA アノテーションを使用できる場合は、それが望ましいでしょう。

よろしくお願いします。

--ジェームズ

4

1 に答える 1

16

二度目の挑戦

@Table(name = "MY_TABLE", 
   uniqueConstraints = { @UniqueConstraint(columnNames = 
                                           { "FIELD_A", "FIELD_B" }) })

期待どおりに動作するはずです。

于 2010-08-17T18:48:27.523 に答える