【发布时间】:2012-02-08 02:46:19
【问题描述】:
有没有办法在 Grails 中使用 HQL 来使用 Hibernate 命名查询?
我一直在 Harnessing Hibernate book 中阅读有关它们的信息,想知道是否有办法在 Grails 中使用它们。
命名查询与类映射一起包含在<class-name>.hbm.xml 映射文件中,如下所示:
<query name="com.oreilly.hh.tracksNoLongerThan">
<![CDATA[
from Track as track
where track.playTime <= :length
]>
</query>
现在我确定 <class-name>.hbm.xml hibernate 映射文件 可以作为 it is stated here 包含并集成到 Grails GORM 配置中,hibernate.cfg.xml 包含 hibernate 映射文件 可以在 Grails 中使用。
在旧的 Hibernate 和 Java 中可以这样访问它:
...
Query query = session.getNamedQuery(
"com.oreilly.hh.tracksNoLongerThan");
query.setTime("length", length);
return query.list();
...
但是,如何从 Grails 访问这些 HQL 命名查询?
我问的原因是我希望能够获取一个遗留数据库并将其映射到一些对象以在 Grails 中使用,并将命名查询与映射一起存储。
【问题讨论】:
-
P.S.我已经在 Grails 文档中看到了对命名查询的引用...grails.org/doc/2.0.x/ref/Domain%20Classes/namedQueries.html
标签: hibernate grails hql grails-orm named-query