我可以分享一下我的沮丧情绪。 GORM(和Grails ..)似乎有关于数据库索引的非常有限的文档。当我希望索引不仅仅是这里记录的内容时,我还没有找到任何关于如何为域类创建索引的帮助:http://grails.org/doc/latest/guide/GORM.html。
这是SQL中我希望实现Grails的方式:
CREATE INDEX very_fast_index
ON slow_table(date DESC NULLS LAST)
WHERE is_latest = true;
好像我可以告诉GORM为日期列创建一个索引。但看起来有ZERO选项可以添加其他标准。
由于我讨厌简单的事情变得非常复杂,我已经在PostgreSQL CLI中手动创建了这些索引。不是来自Grails,它会更便携。我不想写任何HQL,因为我也不喜欢这个想法。
有什么想法吗?我只有手动方式。
答案 0 :(得分:1)
HQL是Data manipulation language非Data definition language,因此对您的需求无效。如果要使用数据库供应商特定功能,则必须绕过hibernate并使用较低级别的jdbc连接来执行SQL查询。在grails中,您可以使用dataSource bean来进行查询the groovy way。当然这对于特定的数据库(在你的情况下是Postgres)来说很紧张。