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

时间:2010-08-17 16:00:19

标签: hibernate jpa annotations unique-constraint

我想确保表中的所有行都有两个字段的唯一组合,我想在我的实体类中使用注释来指定它。我尝试过使用@Table和@UniqueConstraint的组合,但显然我做错了,因为我似乎只能指定单独的列应该是唯一的(我已经可以指定使用@ Column的唯一属性)比列的组合。例如,我想要一个表,其中字段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 个答案:

答案 0 :(得分:14)

你的第二次尝试

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

应该按预期工作。