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

Jam*_*ams 12 annotations hibernate jpa unique-constraint

我想确保表中的所有行都有两个字段的唯一组合,我想在我的实体类中使用注释来指定它.我尝试过使用@Table和@UniqueConstraint的组合,但显然我做错了,因为我似乎只能指定单独的列应该是唯一的(我已经可以使用@ Column的独特属性指定)比列的组合.例如,我想要一个表,其中字段A和B只包含具有A和B的唯一组合的行.字段/列都不需要是唯一的,它们是两者的组合,应该是唯一的.

这是我到目前为止所尝试过的,没有任何乐趣:

@Table(name = "MY_TABLE", 
       uniqueConstraints = @UniqueConstraint(columnNames = 
                                             { "FIELD_A", "FIELD_B" }))
Run Code Online (Sandbox Code Playgroud)

@Table(name = "MY_TABLE", 
       uniqueConstraints = { @UniqueConstraint(columnNames = 
                                               { "FIELD_A", "FIELD_B" }) })
Run Code Online (Sandbox Code Playgroud)

有人可以建议正确的方法吗?此外,如果可以使用JPA注释而不是特定于Hibernate的注释,那么这是更可取的.

在此先感谢您的帮助.

- 詹姆士

Tus*_*kas 14

你的第二次尝试

@Table(name = "MY_TABLE", 
   uniqueConstraints = { @UniqueConstraint(columnNames = 
                                           { "FIELD_A", "FIELD_B" }) })
Run Code Online (Sandbox Code Playgroud)

应该按预期工作.