getSingleResult와 getResultList

CHOI YUN HO·2022년 4월 30일
0

SW Maestro

목록 보기
4/13

Data JPA말고 그냥 JPA를 사용할 때,

query.getResultList()


결과가 하나 이상일 때, 리스트로 반환한다.
만약 결과가 없으면 빈 리스트를 반환한다.

query.getSingleResult()


결과가 정확히 하나 일 경우에만 사용한다.

결과가 없으면 NoResultExceiption
2개 이상이면 NoUniqueResultExceiption

unique한 값을 찾고 싶을 때 값이 없는 경우에 대한 생각


예를 들어 유저의 pk를 가지고 유저의 정보를 가져오고 싶은 경우를 생각해보자.

getSingleResult()를 쓰고 exceiption을 처리한다??


아무튼 find*byId같은 경우 Optional객체로 반환해야하니 아무래도 stream()을 통해서 Optional로 감싸는게 낫겠다.

profile
가재같은 사람

0개의 댓글