hibernate如何决定默认使用哪个FetchMode?

Mer*_*eVV 3 java hibernate jpa-2.0

在我们的项目中,我们使用Hibernate,在日志中我们观察到当我们没有指定FetchMode时,它有时会使用Join,有时候会选择Select(因为我理解它的FetchMode).

如果没有指定,Hibernate如何决定使用哪个FetchMode?

这有什么规格吗?任何代码行?任何文章?

Cha*_*hib 9

如果字段上不存在Hibernate注释@Fetch,则此字段的默认FetchMode为:

  • 如果此字段具有FetchType = EAGER,则FetchMode = JOIN.
  • 否则,FetchMode = SELECT.

我的这个信息来源是代码本身(Hibernate 5.0):这里,这里,最重要的是,HERE.