我正在执行以下几行:
String queString = "some query string"
Query q1 = em.createNativeQuery(queString, T03CallsLog.class);
T03CallsLog newCall;
newCall = (T03CallsLog) q1.getSingleResult(); //this line cause the exception after the first time
奇怪的情况。
如果我只用一个实例执行它,就可以正常工作,但是如果我与一个以上实例并行执行(一个mdb),那么第一个实例将被执行而没有任何异常,其余所有实例都会收到此错误:
10:04:50,750 ERROR [log] ECMSDispatcherMdb.onMessage, error: No entity found for query
知道会导致什么吗?以及它是如何第一次工作的,但是对于所有其他实例却没有?
谢谢,
射线。
最佳答案
该错误消息通常告诉您,该查询未返回任何结果。因此getSingleResult()
失败。
如果您期望查询结果为空,请考虑使用getResultList()
并使用isEmpty()
测试结果:
T03CallsLog newCall = null;
List results = q1.getResultList();
if (!results.isEmpty())
newCall = (T03CallsLog) results.get(0);
else
// is it a problem? -> log.