这些@Table(uniqueConstraints)和@Table(索引)注释是否相同?

时间:2017-06-26 22:09:14

标签: hibernate jpa hibernate-annotations database-indexes jpa-annotations

在JPA / Hibernate中创建索引时,它们是完全相同的吗?

@Table (uniqueConstraints = @UniqueConstraint (columnNames = {"series", "date"}))

@Table (indexes = {@Index (name = "idx", columnList = "series, date", unique = true)})

如果没有,那有什么区别?

1 个答案:

答案 0 :(得分:0)

@UniqueConstraint@Index都只是模式生成工具的提示,即方言/数据库敏感。您的具体示例可能会为大多数数据库提供程序生成相同的索引ddl。两者之间的一般区别是您可以索引列而不强制唯一性。当然,如果您不使用JPA / hibernate架构生成架构,则两者都无关紧要。如果您需要更多地控制索引或模式,您可能需要考虑liquibase或flywheel等工具。