Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails/GORM:lazy:false和;抓取模式渴望_Grails_Gorm_Lazy Loading_Fetch_Eager Loading - Fatal编程技术网

Grails/GORM:lazy:false和;抓取模式渴望

Grails/GORM:lazy:false和;抓取模式渴望,grails,gorm,lazy-loading,fetch,eager-loading,Grails,Gorm,Lazy Loading,Fetch,Eager Loading,在Grails/GORM中,staticmapping={xyz lazy:false}和staticfetchmode=[xyz:'eager']之间有什么区别 例如: class Book { static belongsTo = [author: Author] static mapping = {author lazy: false} static fetchMode = [author: 'eager'] } lazy:false和fetchMode'e

在Grails/GORM中,
staticmapping={xyz lazy:false}
staticfetchmode=[xyz:'eager']
之间有什么区别

例如:

class Book {
    static belongsTo = [author: Author]
    static mapping   = {author  lazy: false}
    static fetchMode = [author: 'eager']
}

lazy:falsefetchMode'eager'之间的区别是

  • lazy:false将通过使用Select查询再次查询数据库来获取关联的域对象,但现在不推荐使用的fetchMode“eager”(使用fetch:“join”)将尝试连接关联的表(使用外部连接)并在单个查询中获取关联的对象
  • lazy:false将有一个到数据库的更多查询来获取关联的域对象,因此将有更多与数据库的交互,而fetch:“join”将有更少的交互来获取相同的数据
  • FetchMode联接将覆盖lazy属性。它将简单地忽略懒惰:false
  • 如果您对Fetchmodes的详细解释感兴趣,请看一看。本文描述了Hibernate模式及其产生的输出


    希望这有帮助。

    我想这可能会回答你的问题:[[1]:谢谢你的链接,但答案似乎描述了
    lazy:true
    lazy:false
    之间的区别。答案没有提到
    fetchMode=[…]
    如果有人能回答这个问题,那就太好了,因为我在grails文档和互联网上都没有找到任何解释。