Hibernate Annotation以避免基于多列中的值重复输入db

时间:2017-11-28 09:27:14

标签: hibernate spring-mvc

hibernate中是否有任何注释,我可以用它来查明匹配多个字段的条目是否已经在db中。现在我使用INSERT IGNORE语句来实现同样的目的。我想基于不在单个列上的多个列来完成它。

例如,我有一张桌子,其中有三列。 标题,作者和描述以及价格。我不会重复输入,与上面提到的四个字段完全匹配。

1 个答案:

答案 0 :(得分:0)

您可以将uniqueConstraints注释的@Table属性用于您的目的:

@Table(name = "book", uniqueConstraints = {
   @UniqueConstraint(columnNames = {"title", "author", "description", "price"})
})

它指定在主表的生成DDL中包含唯一约束。

例如,如果您的图书 title = 1 作者= 1 description = 1 price =书表中的,当有人插入具有相同值的新行时,它会抛出异常。