fetchOne(), fetchFirst()

2023. 1. 17. 09:48daliy

4.0 프로젝트는 기관 정보와 기관 프로필의 앤티티를 나누었다.

현재 정책으로 기관은 하나의 프로필을 갖는다.

그러나 프로젝트 설계는 향후 멀티 프로필의 가능성을 고려해서 1:N 관계이다.

 

기관 프로필을 조회할때, fetchOne()과 fetchFirst() 중 무엇을 쓸 지 논의했다.

 

fetchOne()은 한건 이상의 데이터가 조회되면 에러가 발생한다.

fetchFirst()는 한건 이상의 데이터가 조회되더라도,

첫 번째 데이터만 조회하기 때문에 에러가 발생하지 않는다.

 

일견 생각하면 에러를 최소화할 수 있는 fetchFirst()를 쓰면 되지만,

그렇다면 fetchOne()는 왜 존재하는지 생각해보게 되었다.

 

결론은, 설계상 가능한 영역은 fetchFirst()로 처리하고,

불가능한 경우는,

예를 들어, 상세페이지 단건 조회 같은 경우는

fetchOne()을 사용하여 에러처리를 하기로 하였다.

 

fetchFirst()만 사용해도 무방하지만,

fetchOne()의 의미를 고려해서

각각의 특징에 맞게 팀내에서 사용 방향을 합의하고 결정하면서

각각의 의미를 생각해보는 시간이었다.

'daliy' 카테고리의 다른 글

@JoinColumn(nullable) & @OneToOne(optional)  (0) 2023.01.25
Controller & Service & Repository role setting  (0) 2023.01.19
order by (PostgreSql, MariaDB)  (0) 2023.01.18