我正在使用 Hibernate 3.3.1 和 PostgresQL 9.2.2 服务器。我的应用程序的表是由休眠自动生成的,现在我想对表中一个非常常用的“like”表达式进行优化,看起来像 wy:“where path like 'RootFolder_FirstSubfolder%'”
默认情况下,hibernate 只为我通过注释定义的“id”列创建索引。
有什么建议我可以使用更多索引来加速我的“喜欢”表达吗?
非常感谢您帮助我
亲切的问候
香农
我正在使用 Hibernate 3.3.1 和 PostgresQL 9.2.2 服务器。我的应用程序的表是由休眠自动生成的,现在我想对表中一个非常常用的“like”表达式进行优化,看起来像 wy:“where path like 'RootFolder_FirstSubfolder%'”
默认情况下,hibernate 只为我通过注释定义的“id”列创建索引。
有什么建议我可以使用更多索引来加速我的“喜欢”表达吗?
非常感谢您帮助我
亲切的问候
香农
Hibernate 可以使用Index
注解自动创建附加索引:
@org.hibernate.annotations.Index(name = "IDX_PATH")
private String path;
但它无济于事,因为创建的索引不适合like
子句。
在此处阅读最受好评的答案以获得更好的解决方案。不幸的是,它需要自定义 sql 和 AFAIK,没有简单的方法可以将自定义 sql 集成到由休眠模式更新工具生成的脚本中。
作为休眠自动更新的替代方法:您可以使用像liquibase这样的工具来管理模式更新。它需要更多设置,但它可以让您完全控制架构更新脚本。