Hibernate获取优化问题

时间:2015-11-17 14:52:59

标签: java hibernate jpa

我们有一个遗留数据库,其中单个顶级表具有许多关系和子关系。我们通常不需要全部或大部分它们,我们默认将它们设置为延迟加载,然后在HQL中使用连接来预取我们在代码的特定部分中需要的那些。

我们有一个模块,我们需要其中的一些。我们不想进入N + 1,但是我们用这种方法遇到了巨大的表现,其中一个记录有近4000个孩子,而他们又有不同数量的孩子。我们尝试了尽可能多的延迟加载而不进入N + 1,但看起来连接产生的交叉产品实际上是不切实际的。

有没有更好的方法来解决这个问题?似乎需要的是一种将这个连接查询分解为多个查询的方法,然后将hibernate模型作为第二步拼凑在一起。就像有一种方法可以用HQL来加载表A,B和C,但是然后加载C的子细节是hibernate按键应用于层次结构的第二步。

0 个答案:

没有答案