티스토리 뷰

산학 협력 캡스톤 프로젝트를 진행하던 중 다음과 같은 오류가 발생했습니다.

 

org.hibernate.NonUniqueResultException: Query did not return a unique result: 3 results were returned

 

쿼리를 통해 find 하는 메서드에서 발생한 오류인데 처음 보는 종류의 오류라 확인해보았습니다.

해당 오류를 발생시키는 메서드는 아래의 메서드입니다.

 

해당 프로젝트는 SolveHistory와 SolveHistoryDetail 엔티티가 존재하는데, 1:N 관계를 가지고 있습니다.

메서드는 SolveHistoryDetailRepository에 포함되는 메서드인데, 해당 메서드를 통해 받을 수 있는 클래스가 하나이기 때문에 발생하는 오류라고 합니다.

 

해당 문제를 인지하고 해결한 방법은 다음과 같습니다.

반환하려고 하는 값은 Optional<SolveHistory> 이지만, 해당 메서드를 SolveHistoryDetailRepository 에서 처리하고 있기 때문에 

다수의 SolveHistoryDetail 값을 하나의 클래스로만 받게 되어 발생한 오류라고 생각했습니다.

 

그렇기 때문에 해당 메서드를 SolveHistoryRepository로 이관하여 처리하도록 하였습니다.

 

이관하고 난 후 정상적으로 쿼리가 날아가는 것을 확인할 수 있었습니다~

 

 

 

' 엔티티 구조와 관계를 잘 생각하고 쿼리나 로직을 작성합시다.. '

공지사항
최근에 올라온 글
최근에 달린 댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30