Новый объект в JPQL и выбирает

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

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

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


person anergy    schedule 11.07.2011    source источник


Ответы (1)


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

person DataNucleus    schedule 11.07.2011