관리 메뉴

Mini

25. 1. 5. 개발일지 // spring data jpa 본문

카테고리 없음

25. 1. 5. 개발일지 // spring data jpa

Mini_96 2025. 1. 6. 01:47

* 연관관계 편의 메서드

가격 : 주식 ( N : 1) 관계에서 N쪽에 편의 메서드 생성

이는 JPA에서 양방향 연관관계를 관리하기 위한 편의 메서드입니다.

예를 들어 설명하면:

// 편의 메서드 없이 양방향 관계를 설정할 경우
StockPrice price = new StockPrice();
Stock stock = new Stock();

// 양쪽에 각각 설정해야 함
price.setStock(stock);                    // StockPrice -> Stock
stock.getPrices().add(price);             // Stock -> StockPrice

// 편의 메서드를 사용할 경우
price.changeStock(stock);                 // 한 번에 양쪽 다 처리

잘못된 사용 예 (실수하기 쉬운 케이스):

StockPrice price = new StockPrice();
Stock stock = new Stock();

// Stock은 설정했지만 Price 리스트에는 추가 안됨 (누락!)
price.setStock(stock);  

// 이후 stock.getPrices()로 조회시 price가 누락될 수 있음

CTO들의 견해:

  1. JPA 전문가:
    • "양방향 관계에서 한쪽을 깜빡하는 실수는 자주 발생합니다. 편의 메서드로 이를 방지할 수 있습니다."
  2. OOP 전문가:
    • "객체의 일관성을 유지하기 위해 필수적인 패턴입니다."
  3. 도메인 주도 설계 전문가:
    • "연관관계의 주인 쪽에 이런 편의 메서드를 두는 것이 좋은 설계입니다."
  4. 시니어 아키텍트:
    • "실수 방지와 코드 중복 제거를 위해 반드시 필요한 패턴입니다."