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

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


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


感谢您的帮助,
/ D

编辑:我的意思是“它不再起作用”是当我向表中添加新条目时不会引发异常。它带有两列,引发一个ConstraintViolationException

最佳答案

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


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


现在您还有两个选择:


让Hibernate生成数据库架构
照常删除旧约束并通过使用SQL添加新约束。

关于java - @UniqueConstraint超过两列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11579467/

10-12 05:45