【发布时间】:2011-10-02 18:32:42
【问题描述】:
为什么要使用 JPQL 查询
Select new Foo(X,Y) from X join X.y as Y Where ...
产生多个sql? 1 个用于主选择,1 个用于 X 和 Y?
【问题讨论】:
为什么要使用 JPQL 查询
Select new Foo(X,Y) from X join X.y as Y Where ...
产生多个sql? 1 个用于主选择,1 个用于 X 和 Y?
【问题讨论】:
让我们猜猜。一个查询选择 X、Y 的 ID,然后 1 查询 X 以加载其其他字段(在 Foo 的构造函数中),然后 1 查询 Y 以加载其其他字段(当在 Foo 的构造函数中访问时)。
显然你可以轻松做到
SELECT new Foo(x.id, x.field2, x.field3, y.id, y.field2) FROM X join X.y as Y ...
这将(使用 DataNucleus JPA)执行单个 SELECT。
【讨论】: