Новый объект в JPQL и выбирает - PullRequest
0 голосов
/ 11 июля 2011

Почему запрос JPQL

Select new Foo(X,Y) from X join X.y as Y Where ...

дает более одного sql?1 для основного выбора и 1 для X и Y?

1 Ответ

3 голосов
/ 11 июля 2011

Давайте угадаем. Один запрос, который выбирает эти идентификаторы X, Y, а затем 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...