15

我想确保我的表中的所有行都具有两个字段的唯一组合,并且我想在我的实体类中使用注释来指定它。我尝试过使用@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 的注释,那就更好了。

在此先感谢您的帮助。

- 詹姆士

4

1 回答 1

16

你的第二次尝试

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

应该按预期工作。

于 2010-08-17T18:48:27.523 回答