JPA Quest toString - PullRequest
       11

JPA Quest toString

3 голосов
/ 11 сентября 2010

У меня есть запрос JPA, который я выполняю в хранилище данных Google App-Engine.
Я строю запрос с использованием параметров.
После того, как все параметры введены, я хочу просмотреть строку запроса.

То есть я хочу просмотреть фактический запрос, выполняемый хранилищем данных.
Это вообще возможно? Это действительно помогло бы мне в отладке.

Чтобы решить вопрос, предположим следующий запрос:

Query query=EM.createQuery("SELECT FROM "
+MyClass.class.getName()+" C WHERE C.field = :arg1");
query.setParameter("arg1", someParam);

если System.out.println(SomeObj) печатает 'ВЫБРАТЬ ИЗ MyClass C, ГДЕ C.field = 17' тогда вопрос решен.

David

Ответы [ 2 ]

1 голос
/ 11 сентября 2010

То есть я хочу просмотреть фактический запрос, выполняемый хранилищем данных.

Включение DEBUG для категории DataNucleus.Datastore должно сделать это.Обратитесь к документации DataNucleus Logging .

0 голосов
/ 01 октября 2010

В текущем DataNucleus вы можете просто вызвать toString () для объекта JPA Query, чтобы увидеть одностроковую форму (без подстановки параметров).Фактический запрос, вызываемый в хранилище данных, зависит от хранилища данных (очевидно), являющегося SQL в случае СУБД, и чего-то другого в случае BigTable.

...