• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

PersistantBag으로 감싸는 이유가 이게 맞을까요?

23.12.02 17:52 작성 조회수 130

0

일대다 관계에서 List<Member> members= new ArrayList<>();

getMembers라고 조회하면 프록시 객체가 아니라 PersistantBag으로 감싸고

안에 회원 한명을 조회하던 여러명을 조회던 그때 참조하는 Member를 전부 가져오고

거기서 꺼내서 주는거같아요.

이렇게 하는 이유는 연관관계 주인이 대상테이블에 있기 때문이라고 이해를 했습니다.

주테이블에 연관관계 주인으로 설정한다고 해도

데이터베이스 테이블 구조는 다 쪽에 외래키 칼럼이 있기 때문에

일 쪽에서는 자신을 참조하는 테이블 레코드를 알수 없기때문에

(조회를 하건,수정을하건,삭제를 해야 그때 조회하는걸로 알고 있습니다.)

지연 로딩이 불가능하고 즉시로딩이 되는거같은데 이렇게 이해하는게 맞을까요?

 

답변 1

답변을 작성해보세요.

2

codesweaver님의 프로필

codesweaver

2023.12.04

안녕하세요. kamser님, 공식 서포터즈 코즈위버입니다.

PersistentBag도 List 와 같은 콜렉션의 일종입니다.

PersistentBag은 기본적인 콜렉션 기능 외에, 지연로딩, 변경추적과 관련한 기능들을 지원합니다. 그래서 JPA의 더티체킹을 구현하기 수월하며 최적화에 도움을 줍니다.

감사합니다.