此代码不断抛出错误,因为数据库中没有任何值:
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();
}
不过,我希望它只返回一个空对象。有没有办法我可以做到这一点?
在这一行抛出异常:
Foo foo = fooDao.getFoo(p1, p2);
[ObjectDB 2.5.7_03] javax.persistence.NoResultException com.objectdb.jpa.JpaQuery.getSingleResult(JpaQuery.java:754) 的唯一查询(错误 782)没有匹配结果