【问题标题】:How to apply unique constraints using annotation如何使用注释应用唯一约束
【发布时间】:2011-11-21 18:19:52
【问题描述】:
@Column(name = "userId")
    @UniqueConstraint
    private Integer userId;

我正在使用这些注释将数据输入数据库表。 我想让 userId 字段成为唯一字段。但是当我这样做时,它会显示错误@UniqueConstraints is disallowed for this location.

【问题讨论】:

    标签: hibernate annotations


    【解决方案1】:
    @Column(name = "userId",unique=true)
    

    或者如果它是一个 DB 生成的 ID 你也可以这样做

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

    【讨论】:

    • 不是主键字段。
    • @MiguelMunoz 所以忽略答案的第二部分并继续第一部分,即@Column(name = "userId",unique=true)
    【解决方案2】:

    这是一个如何使用@UniqueConstraint 的示例:

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

    这指定“name”列和“company_id”列的组合是唯一的。

    【讨论】:

    • UniqueConstraint 注解的封装是什么?
    【解决方案3】:

    这是Hibernate doc 3.5 版对@UniqueConstraint 定义的解释。

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

    这是为Hibernate 4.3 example@UniqueConstraint

    【讨论】:

      猜你喜欢
      • 2017-01-14
      • 2012-08-15
      • 2011-03-31
      • 2014-04-05
      • 1970-01-01
      • 2013-11-17
      • 2018-12-22
      • 1970-01-01
      • 2016-04-06
      相关资源
      最近更新 更多