Programming-[Backend]/SpringBoot

[TIL] Unique Id 아닌 값을 바탕으로 조회 및 update 할 때, findTopBy

컴퓨터 탐험가 찰리 2021. 6. 29. 14:50
728x90
반응형

 

다음 그림과 같이 Unique 값이 아닌 Id 값이 있는 경우가 있어서는 안되지만 있을 수도 있다.

 

그런데 만약 이 contact_id값을 바탕으로 객체를 불러와서 업데이트 하는 상황이라면,

 

일단 엔티티 객체를 조회할 때 contact_id에 해당하는 모든 엔티티 객체를 List 형태로 불러오고

List 내부의 모든 엔티티 객체의 값을 업데이트 하는 것이 바람직할 것이다.

 

상황에 따라 다르겠지만, 그렇게 해야 contact_id를 통해 값을 조회했을 때 일관성있는 결과값을 기대할 수 있게 된다.

 


차선의 방법으로, JPA에서의 findTop 메서드를 활용하여 쿼리 결과가 1개만 나오도록 해야 쿼리 결과상 문제가 발생하지 않는다. 쿼리 결과는 엔티티 객체 1개만 리턴하도록 지정해뒀는데, contact_id로 조회했을 때 2개 이상의 결과가 나오면 문제가 되기 때문이다.

728x90
반응형