Hibernate 这些@Table(uniqueConstraints)和@Table(index)注释是否相同?
在JPA/Hibernate中创建索引时,这些索引是否完全相同Hibernate 这些@Table(uniqueConstraints)和@Table(index)注释是否相同?,hibernate,jpa,hibernate-annotations,database-indexes,jpa-annotations,Hibernate,Jpa,Hibernate Annotations,Database Indexes,Jpa Annotations,在JPA/Hibernate中创建索引时,这些索引是否完全相同 @Table (uniqueConstraints = @UniqueConstraint (columnNames = {"series", "date"})) 以及: 如果没有,区别是什么?两个@UniqueConstraint和@Index都只是模式生成工具的提示,它对方言/DB敏感。您的特定示例可能会为大多数DB提供程序生成相同的索引ddl。两者之间的一般区别在于,可以在不强制唯一性的情况下对列进行索引。当然,如果您不使用
@Table (uniqueConstraints = @UniqueConstraint (columnNames = {"series", "date"}))
以及:
如果没有,区别是什么?两个
@UniqueConstraint
和@Index
都只是模式生成工具的提示,它对方言/DB敏感。您的特定示例可能会为大多数DB提供程序生成相同的索引ddl。两者之间的一般区别在于,可以在不强制唯一性的情况下对列进行索引。当然,如果您不使用JPA/Hibernate模式GEN生成模式,那么两者都是无关的。如果您需要更多地控制索引或架构,那么您可能需要考虑诸如LiQueBASE或飞轮之类的工具。p> 我喜欢使用JPA注释和liquibase来双重检查模式的正确性
@Table (indexes = {@Index (name = "idx", columnList = "series, date", unique = true)})