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

也就是说,我希望查看数据存储正在执行的实际查询。

启用日志类别应该可以做到DEBUGDataNucleus.Datastore查看DataNucleus 日志记录文档。

于 2010-09-11T06:44:09.283 回答
0

在当前的 DataNucleus 中,您只需在 JPA Query 对象上调用 toString() 即可查看单字符串形式(无需参数替换)。在数据存储上调用的实际查询取决于数据存储(显然),在 RDBMS 的情况下是 SQL,在 BigTable 的情况下是其他东西。

于 2010-10-01T09:24:11.400 回答