在Grails/GORM中,static mapping = {xyz lazy: false}
&static fetchMode = [xyz: 'eager']
?
示例:
class Book {
static belongsTo = [author: Author]
static mapping = {author lazy: false}
static fetchMode = [author: 'eager']
}
lazy:false和fetchMode'earge'之间的区别是
- lazy:false将通过使用Select Query再次查询到数据库来获取关联的域对象,但现在不推荐使用的fetchMode"渴望"(使用fetch:'join')将尝试加入关联的表(使用外部联接),并在单个查询中提取关联的对象
- lazy:false将对数据库再进行一次查询以获取相关的域对象,因此将与数据库进行更多的交互,而fetch:'join'将较少地交互以获取相同的数据
- FetchMode Join覆盖惰性属性。它会简单地忽略懒惰:错误
如果您对Fetchmodes的详细解释感兴趣,请查看http://www.solidsyntax.be/2013/10/17/fetching-collections-hibernate/.本文描述了Hibernate获取模式及其产生的输出。
希望这能有所帮助。