标准 - 急切地获取关联对象的属性

时间:2013-07-09 09:35:58

标签: hibernate grails hibernate-criteria

我有两个由连接表连接的实体。当我尝试获取所有关联实体时,这只获取关联的标识,而不是它们的属性值:

User.createCriteria().get {
    eq property, value
    fetchMode 'authorities', FetchMode.JOIN
}

仅导致与连接表的连接:

...
left outer join
    search_role_auth_user authoritie2_ 
        on this_.ID=authoritie2_.AUTHORITIES_ID 
...

我如何热切地获取关联实体的数据?

1 个答案:

答案 0 :(得分:0)

假设,

class User{
    static hasMany = [authorities: Authority]
}

class Authority{
    static belongsTo = [user: User]
}

authorities可以通过以下标准热切地获取

User.createCriteria().list {
    eq property, value
    authorities{
       //All authorities for User are eagerly fetched by default
    }
}

注意: -
使用list代替get,因为有可能获得多个结果,因为条件是基于id比较而非属性值构建的。