2014-11-23 3 views
0

데이터베이스에 존재하는 값이 없기 때문에이 코드는 오류를 던지는 유지 : 그냥하지만 ​​null 객체를 반환하는 경우일치하는 결과가 없습니다

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에서 고유 쿼리 (오류 782)에 대한 결과와 일치 .jpa.JpaQuery.getSingleResult (JpaQuery.java:754)

답변

1

예외를 catch하고 null을 반환합니다.

관련 문제