未找到查询异常的实体

2022-09-01 16:38:01

我正在执行以下行:

  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

任何想法可能导致它?以及它第一次是如何工作的,但对于所有其他实例,它都没有?

谢谢

射线。


答案 1

错误消息通常会告诉您,查询未返回任何结果。所以失败了。getSingleResult()

如果您期望空查询结果,请考虑使用并测试结果:getResultList()isEmpty()

T03CallsLog newCall = null;
List results = q1.getResultList();
if (!results.isEmpty())
   newCall = (T03CallsLog) results.get(0);
else
   // is it a problem? -> log.

答案 2

如果查询未返回任何结果,则 由 抛出 NoResultException。您确定,秒 MDB,将通过您的查询获得任何结果吗?getSingleResult()


推荐