在我们的项目中,我们使用Hibernate,而在日志中,我们观察到当我们未指定FetchMode时,有时使用Join,有时使用Select来建立关系(据我所知是FetchMode)。

如果未指定,Hibernate如何决定使用FetchMode之一?

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

最佳答案

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

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

  • 此信息的来源是代码本身(Hibernate 5.0):HEREHERE,最重要的是HERE

    09-05 11:41