代码之家  ›  专栏  ›  技术社区  ›  James Adams

如何使用注释指定列的组合应该是唯一的约束?

  •  12
  • James Adams  · 技术社区  · 15 年前

    我想确保表中的所有行都有两个字段的唯一组合,并且我想使用entity类中的注释来指定这一点。我尝试过使用@Table和@UniqueConstraint的组合,但显然我做错了,因为我似乎只能指定单独的列应该是唯一的(我已经可以使用@Column的unique属性指定),而不是列的组合。例如,我希望一个包含字段a和B的表只包含具有唯一a和B组合的行。两个字段/列都不必是唯一的,这两个字段/列的组合应该是唯一的。

    以下是我迄今为止毫无乐趣地尝试过的:

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

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

    有人能提出正确的方法吗?另外,如果可以使用JPA注释而不是Hibernate特定的注释,那就更好了。

    事先谢谢你的帮助。

    --詹姆斯

    1 回复  |  直到 15 年前
        1
  •  15
  •   Tushar Tarkas    15 年前

    你的第二次尝试

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

    应该按预期工作。