Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 如何使用注释将列的组合指定为唯一约束?_Hibernate_Jpa_Annotations_Unique Constraint - Fatal编程技术网

Hibernate 如何使用注释将列的组合指定为唯一约束?

Hibernate 如何使用注释将列的组合指定为唯一约束?,hibernate,jpa,annotations,unique-constraint,Hibernate,Jpa,Annotations,Unique Constraint,我想确保表中的所有行都有两个字段的唯一组合,并且我想使用entity类中的注释来指定这一点。我曾尝试使用@Table和@UniqueConstraint的组合,但显然我做得不对,因为我似乎只能指定单独的列应该是唯一的(我已经可以使用@Column的unique属性指定),而不是列的组合。例如,我希望一个包含字段a和B的表只包含具有唯一a和B组合的行。字段/列都不需要是唯一的,而是这两个字段/列的组合应该是唯一的 以下是我到目前为止所做的尝试,但毫无乐趣: @Table(name = "MY_TA

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

以下是我到目前为止所做的尝试,但毫无乐趣:

@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" }) })