0

在我的 Spring/hibernate 项目中,我uniqueConstraints = {@UniqueConstraint(columnNames={"ID_A", "ID_B"})}用来验证表中列的唯一组合。当我只有两列时,这很好用。

但是,当我想向ID_C约束添加第三列时,它不再起作用。

  1. @UniqueConstraint只允许两列吗?
  2. 如果是,那么我将如何验证两列以上的唯一组合?

谢谢你的帮助,/D

编辑:我所说的“它不再有效”的意思是当我向表中添加新条目时不会引发异常。有两列它会抛出一个ConstraintViolationException.

4

1 回答 1

2

UniqueConstraint单独添加到实体不会执行任何验证。如链接文档中所述,它提供了用于生成数据库模式的说明:

指定将唯一约束包含在为主表或辅助表生成的 DDL 中。

现在你有两个选择:

  1. 让 Hibernate 生成数据库模式
  2. 像往常一样使用 SQL 删除旧约束并添加新约束。
于 2012-07-20T14:55:55.037 回答