0

在与 Hibernate 合作几年后问这个问题有点尴尬......

我有一个 master_table :

  • 有一些 @OneToMany(fetch=FetchType.LAZY, mappedBy="something")
  • 还有一些 @ManyToOne(fetch=FetchType.LAZY)
  • 可能有一些@OneToOne
  • child_table 中的相同内容

我只加载了 master_table,它给了我大约 500 行。然而,在后台,大约有 6000 个查询。(很确定没有EAGER)

问:这正常吗?是否可以仅使用 1 个查询加载此表而不会影响延迟加载机制,这在这里工作得非常好。

谢谢

4

1 回答 1

0

答案很简单: - 在@OneToMany 上使用 Fetch = Subselect 只给了我一个查询。由于它是惰性的,当需要孩子时,会生成相应的查询 - 使用 BatchSize 也是一个不错的选择

于 2012-06-20T16:46:15.227 回答