如何映射已在ORACLE中创建但在Hibernate实体中创建的“CREATE UNIQUE INDEX”

时间:2016-10-05 15:13:39

标签: java oracle hibernate jpa entity

假设我已经在Oracle中创建了我的数据库。我的一张表有以下声明:

CREATE UNIQUE INDEX "SOME_NAME" ON "SOME_TABLE_NAME" (COLUMN1,COLUMN2)

我想确保我的hibernate实体知道这一点。

  • 在此处不能使用@UniqueConstraint注释,因为只有在表格生成生效时才会使用它。
  • 我还注意到CREATE UNIQUE INDEX "SOME_NAME" ON "SOME_TABLE_NAME" (COLUMN1,COLUMN2)在我的H2数据库中无效。

有没有办法确保我的实体能够意识到这种限制?

1 个答案:

答案 0 :(得分:1)

JPA / Hibernate中的@Table注释允许使用uniqueConstraints属性。这允许您使实体知道约束。

@Table(name="SOME_TABLE_NAME",
  uniqueConstraints = {@UniqueConstraint(columnNames={"COLUMN1", "COLUMN2"})}
)