fetch:'join'被忽略了

时间:2012-09-03 12:22:16

标签: grails gorm

设定:

3个域类A,B和C. A和B在插件中。 C在一个依赖于这个插件的应用程序中。

class A{
    B b
    static mapping = {
        b fetch: 'join'
    }
    ...
}

class C extends A{
    String name
    ...
}

C.list().each{
    println it.b.name
}

问题:

如文档(http://www.grails.org/doc/1.3.x/ref/Database%20Mapping/fetch.html)中所述,fetch:“join”应强制hibernate对每个println行只使用一个查询。不幸的是,有两个没有连接的选择查询。

我的调查

我创建了一个新的Grails项目,它的工作原理如文档中所述,但A类不在外部插件中。

问题

任何想法为什么fetch:“join”在上面的例子中被忽略了?

1 个答案:

答案 0 :(得分:0)

从2.x开始,使用条件时会忽略fetch / eager join。

请参阅此错误报告:https://jira.grails.org/browse/GRAILS-9829

这是一个相当大的问题,但它归功于Hibernate3,因此在Grails中不易解决。

您需要使用HQL才能获取/热切加入。

相关问题