相关疑难解决方法(0)

JPA getSingleResult()或null

我有一个insertOrUpdate方法,它插入一个Entity不存在的方法或更新它,如果它.要启用它,我必须findByIdAndForeignKey,如果它返回null插入,如果没有然后更新.问题是如何检查它是否存在?所以我试过了getSingleResult.但是如果它会引发异常

public Profile findByUserNameAndPropertyName(String userName, String propertyName) {
    String namedQuery = Profile.class.getSimpleName() + ".findByUserNameAndPropertyName";
    Query query = entityManager.createNamedQuery(namedQuery);
    query.setParameter("name", userName);
    query.setParameter("propName", propertyName);
    Object result = query.getSingleResult();
    if (result == null) return null;
    return (Profile) result;
}
Run Code Online (Sandbox Code Playgroud)

getSingleResult扔了一个Exception.

谢谢

java jpa

128
推荐指数
10
解决办法
19万
查看次数

找不到查询异常的实体

我正在执行以下行:

  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
Run Code Online (Sandbox Code Playgroud)

奇怪的情况.如果我只用一个实例执行它就可以正常工作,但是如果我与多个实例(mdb)并行执行它,那么第一个实例执行没有任何异常,其余的都得到这个错误:

10:04:50,750 ERROR [log] ECMSDispatcherMdb.onMessage, error: No entity found for query
Run Code Online (Sandbox Code Playgroud)

什么可能导致它?以及它是如何在第一次工作,但对于所有其他实例它不是吗?

谢谢,

射线.

java jboss ejb jpa

23
推荐指数
2
解决办法
7万
查看次数

标签 统计

java ×2

jpa ×2

ejb ×1

jboss ×1