0

我在配置文件中将 use_outer_join 选项设置为 true。

我还有一个映射的数据库表。我在 sql 日志中看到对于外键,hibernate 为每个记录生成单独的选择。它不使用连接从主表中获取数据。

有什么我忘记了吗?这还有什么问题?

谢谢

4

2 回答 2

1

是的,就是这样:在映射文件中指定外连接是不够的。

如果要强制进行外部联接,则必须在 HQL 语句中指定它。例如

from firstTable as a outer join fetch a.secondTable as b where ...
于 2012-04-17T09:28:17.000 回答
0

检查您的关系映射。如果默认情况下没有指定代理,将为孩子返回..当您访问它的任何属性时,孩子将被加载。它将在单独的 SQL 选择中加载。

您应该在集合映射中使用“outer-join=true”。(如果 hibernate.use_outer_join 在配置中为 true 并且集合映射具有 outer-join="true"...那么只有 hibernate 会生成外部联接)。

于 2012-04-17T08:41:05.243 回答