【问题标题】:Equivalent of hibernate @Index? [duplicate]相当于休眠@Index? [复制]
【发布时间】:2023-04-04 16:27:01
【问题描述】:

hibernate 注释 @Index 已弃用,但我找不到文档或任何关于如何交换它的提示。

@Entity
class MyEntity {
      @Index(name = "name") //org.hibernate.annotations.Index
      private String name;

      @Index(name = "age")
      private int age;
}

结果: @deprecated Using {@link javax.persistence.Index} instead. 但如果我更改导入:Annotation disallowed for this location.

那么:使用非弃用索引时,上述实体的外观如何?

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    正如答案here 所指定的,javax.persistence.Index 中的索引注释只能用作另一个注释的一部分。

    @Table(name = "myTable", indexes = { @Index("name")})
    @Entity
    class MyEntity {
          @Index(name = "name")
          private String name;
    
          @Index(name = "age")
          private int age;
    }
    

    【讨论】:

    • 我应该只在@Table 注释中添加“名称”索引吗?或者我应该在那里列出所有带注释的索引?
    • 如果您只想要“名称”,那么只需使用名称,这取决于您想要在表上使用多少索引。别忘了你可以有索引组合。
    • 您能否更正您的代码示例或使其更清晰?如果我理解正确,属性不应该有任何@Index 注释?还是@Table 和属性都需要注释?是否可以为索引命名? Hibernate 的@Index 支持这一点。
    • 更完整的代码示例可以在 borjab 对以下问题的回答中找到:stackoverflow.com/q/3405229/1492329
    猜你喜欢
    • 2015-10-08
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 2011-01-17
    • 1970-01-01
    相关资源
    最近更新 更多