Hibernate 如何使用注释将列的组合指定为唯一约束?
我想确保表中的所有行都有两个字段的唯一组合,并且我想使用entity类中的注释来指定这一点。我曾尝试使用@Table和@UniqueConstraint的组合,但显然我做得不对,因为我似乎只能指定单独的列应该是唯一的(我已经可以使用@Column的unique属性指定),而不是列的组合。例如,我希望一个包含字段a和B的表只包含具有唯一a和B组合的行。字段/列都不需要是唯一的,而是这两个字段/列的组合应该是唯一的 以下是我到目前为止所做的尝试,但毫无乐趣:Hibernate 如何使用注释将列的组合指定为唯一约束?,hibernate,jpa,annotations,unique-constraint,Hibernate,Jpa,Annotations,Unique Constraint,我想确保表中的所有行都有两个字段的唯一组合,并且我想使用entity类中的注释来指定这一点。我曾尝试使用@Table和@UniqueConstraint的组合,但显然我做得不对,因为我似乎只能指定单独的列应该是唯一的(我已经可以使用@Column的unique属性指定),而不是列的组合。例如,我希望一个包含字段a和B的表只包含具有唯一a和B组合的行。字段/列都不需要是唯一的,而是这两个字段/列的组合应该是唯一的 以下是我到目前为止所做的尝试,但毫无乐趣: @Table(name = "MY_TA
@Table(name = "MY_TABLE",
uniqueConstraints = @UniqueConstraint(columnNames =
{ "FIELD_A", "FIELD_B" }))
及
有人能建议正确的方法吗?此外,如果可以使用JPA注释而不是特定于Hibernate的注释,则更可取
提前感谢你的帮助
--詹姆斯,你的第二次尝试
@Table(name = "MY_TABLE",
uniqueConstraints = { @UniqueConstraint(columnNames =
{ "FIELD_A", "FIELD_B" }) })
应按预期工作。非常感谢您的帮助。事实证明,我的数据插入程序中还有另一个错误,这让我相信这就是问题所在。现在我发现了另一个错误,这个独特的约束确实像广告中所说的那样有效。我真的很感谢你的帮助!可能重复的
@Table(name = "MY_TABLE",
uniqueConstraints = { @UniqueConstraint(columnNames =
{ "FIELD_A", "FIELD_B" }) })