换句话说,以下内容:
class Subscriber {
...
static hasMany = [ topics : Topic]
static fetchMode = [topics:"eager"]
static mapping = {
topics joinTable: [name: 'subscriber_topic', column: 'topic_id', key: 'subscriber_id']
}
}
急切地加载连接表subscriber_topic但不加载在sql日志中看到的Topic类:
Hibernate:
select
subscriber0_.id as id41_0_,
subscriber0_.version as version41_0_,
....
topics2_.subscriber_id as subscriber1_3_,
topics2_.topic_id as topic2_3_
from
subscriber subscriber0_
left outer join
subscriber_topics topics2_
on subscriber0_.id=topics2_.subscriber_id
where
subscriber0_.id=?
我希望获取实际的Topic对象 - 而不是连接表。但是,似乎在连接表中发生了提取,而不是实际的关联对象。
答案 0 :(得分:0)
虽然可能没有明确的方法来在域类中使用joinTable
声明来加载关联,但是在发出查询时可以进行深度预测加载Criteria Builder(例如withCriteria()
)as通过这个题为“withCriteria two level deep association eager fetch grailsn”