web-dev-qa-db-ja.com

アノテーションを使用して一意の制約を適用する方法

@Column(name = "userId")
    @UniqueConstraint
    private Integer userId;

データベーステーブルにデータを入力するためにこれらの注釈を使用しています。 userIdフィールドを一意のフィールドにしたい。しかし、私がそれのようにやっているとき、それは私にエラーを示しています@UniqueConstraints is disallowed for this location.

17
Romi
@Column(name = "userId",unique=true)

または、DBが生成した場合 [〜#〜] id [〜#〜] これも実行できます

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;
35
NimChimpsky

@UniqueConstraintの使用例を次に示します。

@Entity
@Table(name = "contact", 
  uniqueConstraints = @UniqueConstraint(columnNames = {"name", "company_id"}))
public class Contact {
  ...
}

これは、「name」列と「company_id」列の組み合わせが一意になることを指定します。

23
MiguelMunoz

そして、これが@UniqueConstraint定義の Hibernate doc バージョン3.5の説明です。

 @Entity
    @Table(name="tbl_sky",uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})})
    public class Sky implements Serializable {
       ...
    }

これは Hibernate 4.3の例 @UniqueConstraint用です

6
erhun