Grails eager fetch 不会检索所有数据

Posted

技术标签:

【中文标题】Grails eager fetch 不会检索所有数据【英文标题】:Grails eager fetch doesn't retrieve all data 【发布时间】:2010-09-28 16:04:07 【问题描述】:

我有域类:

class Person 
    static hasMany = [ items: Item ]
    static fetchMode = [ items: 'eager'  ]
    String name
    Set items

class Item 
    static belongsTo = [ owner: Person ]
    String name

如果我将static fetchMode = [ items: 'eager' ] 留在原处,那么调用getItems() 只会返回大约10% 的项目。如果我删除了 fetchMode,那么getItems() 会返回所有项目。知道为什么 Eager fetch 会导致检索不到所有存储的数据吗?

【问题讨论】:

请将您问题的答案分享为答案,然后接受答案,否则此问题将继续留在我们的“未回答问题”列表中。如果问题不再相关,请标记它以引起版主注意。 【参考方案1】:

根据grails.org,在 2011 年 2 月,这在 Grails 1.04 中被识别为 bug。截至 2012 年 7 月,该错误被列为已关闭,因此问题应该得到解决。

【讨论】:

请参阅 this question 了解我为什么要回复旧帖子。

以上是关于Grails eager fetch 不会检索所有数据的主要内容,如果未能解决你的问题,请参考以下文章

学说中 fetch="EAGER" 和 fetch="LAZY" 有啥区别

@LazyCollection(LazyCollectionOption.FALSE) 和 @OneToMany(fetch = FetchType.EAGER) 之间的区别

JPA 2.1 Eager Fetch 属性

Fetch Type LAZY 仍然会导致 Eager 加载 Hibernate Spring 数据

Hibernate EAGER fetch 和 cascade-type all 有啥区别

休眠删除不会级联