Java 唯一查询没有匹配结果(错误782)

Java 唯一查询没有匹配结果(错误782),java,jpa,criteria-api,objectdb,Java,Jpa,Criteria Api,Objectdb,此代码不断引发错误,因为数据库中没有任何值: public Foo getFoo(Parent p1, Parent p2) { EntityManager entityManager = entityManagerFactory.createEntityManager(); CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<Foo> crit

此代码不断引发错误,因为数据库中没有任何值:

public Foo getFoo(Parent p1, Parent p2) {
    EntityManager entityManager = entityManagerFactory.createEntityManager();
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<Foo> criteriaQuery = criteriaBuilder.createQuery(Foo.class);
    Root<Foo> root = criteriaQuery.from(Foo.class);
    criteriaQuery.select(root).where(criteriaBuilder.and(
            criteriaBuilder.equal(root.get("p1"), entityManager.find(Parent.class, p1)),
            criteriaBuilder.equal(root.get("p2"), entityManager.find(Parent.class, p2))
    ));
    return entityManager.createQuery(criteriaQuery).getSingleResult();
}
public Foo getFoo(父p1,父p2){
EntityManager EntityManager=EntityManager工厂。createEntityManager();
CriteriaBuilder CriteriaBuilder=entityManager.getCriteriaBuilder();
CriteriaQuery-CriteriaQuery=criteriaBuilder.createQuery(Foo.class);
Root=criteriaQuery.from(Foo.class);
criteriaQuery.select(root).where(criteriaBuilder.and(
criteriaBuilder.equal(root.get(“p1”)、entityManager.find(Parent.class,p1)),
qual(root.get(“p2”)、entityManager.find(Parent.class,p2))
));
返回entityManager.createQuery(criteriaQuery).getSingleResult();
}
我更希望它只是返回一个空对象。我有办法做到这一点吗

在此行引发异常:

Foo-Foo=fooDao.getFoo(p1,p2)

[ObjectDB 2.5.703]javax.persistence.NoResultException无匹配 位于的唯一查询(错误782)的结果 com.objectdb.jpa.JpaQuery.getSingleResult(JpaQuery.java:754)


捕获异常并返回null。

您可以使用
getResultList
而不是
getSingleResult

见: