tevelop RSS 태그 관리 글쓰기 방명록
2022-12-19 21:57:32

엔티티 설계 시 주의점

 

  • 엔티티에는 가급적 세터를 사용하지 말자 세터 너무 많이 열려있으면 변경 포인트가 너무 많아서 유지보수가 어렵다.
  • 모든 연관관계는 지연로딩으로 설정 즉시딩(EAGER)은 예측이 어렵다. 어떤 sql이 실행될지 추적하기가 어렵다. eager를 사용하면 db를 연관되어있는 데이터 걍 다 긁어온다. 연관된 엔티티를 함께 DB에서 조회해야하면 fetch join 또는 엔티티 그래프 기능을 사용한다. @XToOne(OneToOne, ManyToOne) 관계는 기본이 즉시 로딩이므로 직접 지연로딩으로 설정해야한다. fetch=FetchType.LAZY
  • 컬렉션은 필드에서 초기화하자. NPE날일이 없다. 하이버네이트가 엔티티를 펄시스트 하는 순간 하이버네이트가 제공하는 내장 컬렉션으로 변경된다. 
  • cascade -> 
    order - orderItems / orderItems에 데이터를 넣어두고 order를 저장하면 orderItems도 저장이 된다. persist(orderItemA) persist(orderItemB) persist(orderItemC) persist(order)해야하는데 persist(order)하면 끝남.

'내일배움캠프 > TIL' 카테고리의 다른 글

2022.12.28  (1) 2022.12.28
2022.12.22  (2) 2022.12.22
2022.12.16  (0) 2022.12.16
2022.12.15  (0) 2022.12.15
2022.12.13 / 프로그래머스 코딩테스트 입문 > 안전지대  (0) 2022.12.13
tevelop. Designed by 코딩재개발.