3

在 JPA / Hibernate 中创建索引时,这些完全相同吗?

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

和:

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

如果不是,有什么区别?

4

1 回答 1

1

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

于 2017-06-27T06:24:49.433 回答