Grails / GORM:懒惰的区别:false和fetchMode渴望



在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:falsefetchMode'earge'之间的区别是

  1. lazy:false将通过使用Select Query再次查询到数据库来获取关联的域对象,但现在不推荐使用的fetchMode"渴望"(使用fetch:'join')将尝试加入关联的表(使用外部联接),并在单个查询中提取关联的对象
  2. lazy:false将对数据库再进行一次查询以获取相关的域对象,因此将与数据库进行更多的交互,而fetch:'join'将较少地交互以获取相同的数据
  3. FetchMode Join覆盖惰性属性。它会简单地忽略懒惰:错误

如果您对Fetchmodes的详细解释感兴趣,请查看http://www.solidsyntax.be/2013/10/17/fetching-collections-hibernate/.本文描述了Hibernate获取模式及其产生的输出。

希望这能有所帮助。

最新更新