3

Google App-Engine データストアで実行している JPA クエリがあります。
パラメータを使用してクエリを作成しています。
すべてのパラメータを入力したら、クエリ文字列を表示したいと思います。

つまり、データストアによって実行されている実際のクエリを表示したいと考えています。
それは可能ですか?デバッグに本当に役立ちます。

この問題を解決するには、次のクエリを想定します。

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

System.out.println(SomeObj)'SELECT FROM MyClass C WHERE C.field = 17' が出力された場合、質問は解決されます。

デビッド

4

2 に答える 2

1

つまり、データストアによって実行されている実際のクエリを表示したいと考えています。

ログカテゴリを有効DEBUGにすると、それが行われます。DataNucleus LoggingのドキュメントをDataNucleus.Datastore確認してください。

于 2010-09-11T06:44:09.283 に答える
0

現在の DataNucleus では、JPA Query オブジェクトで toString() を呼び出すだけで、単一文字列形式を表示できます (パラメーター置換なし)。データストアで呼び出される実際のクエリは (明らかに) データストアに依存し、RDBMS の場合は SQL であり、BigTable の場合は別のものです。

于 2010-10-01T09:24:11.400 に答える