gpt4 book ai didi

java - JPA 2.1 具有函数的列的索引注释

转载 作者:搜寻专家 更新时间:2023-10-31 19:53:43 26 4
gpt4 key购买 nike

在我的 Hibernate 项目中,我像这样添加索引:

@Entity
@Table(name="MY_TABLE", indexes = {
@Index(name = "idx_user_name", columnList = "name"),
@Index(name = "idx_user_email", columnList = "email")
})

这很好用,但是当我想创建这样的索引时会发生什么:

CREATE INDEX ON my_table (lower(name)); 

如果我使用以下注释,我会得到一个 AnnotationException:

@Index(name = "idx_lower_name", columnList = "lower(name)")

我希望将我的项目与通过 Hibernate + JPA 2.1 制作的索引一起发布。是否可以通过 Index 注释应用函数?

或者我应该只在部署时运行一个 SQL 脚本来通过 SQL 自己添加这些索引?

我可能只是将 columnList 格式化错误,或者可能有一个字段在我丢失的文档中没有描述。

最佳答案

在 JPA 2.1 中无法使用基于函数的索引。

JPA 提供了从特定数据库中抽象的方法。每个数据库都有自己的 FBI 实现,可以 vary greatly .因此,它不是标准的一部分。

我查看了 Hibernate 代码,看看是否有 FBI 未记录的功能。不幸的是,只有基于列的索引是 supported .

您应该在部署时运行 SQL 脚本来创建索引。

关于java - JPA 2.1 具有函数的列的索引注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com