• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

일대다 관계 지연로딩시 질문

22.05.25 20:44 작성 조회수 1.07k

1

Member 와 Post 가 일대다 관계일 때, member를 가져올 때 post가 지연로딩으로 되면 가져온 멤버의 필드 List<Post> 는 null값으로 설정되나요? 아니면 빈 List로 생성되나요?

Member 클래스

@OneToMany(mappedBy = "member",cascade = CascadeType.ALL)
private List<Post> posts;

Post 클래스

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="member_id")
private Member member;

 

전체 회원의 post 개수를 화면에 보여주려고 타임리프에서 

<td th:text="${member.posts.size()}"></td>

이렇게 각 멤버의 post에 접근했더니 

org.springframework.expression.spel.SpelEvaluationException: EL1011E: Method call: Attempted to call method size() on null context object

와 같이 null 오브젝트에 size()를 호출했다고 합니다.

 

답변 2

·

답변을 작성해보세요.

0

OMG님의 프로필

OMG

2022.05.25

안녕하세요. 조진수님, 공식 서포터즈 OMG입니다.


JPA 기본편 
양방향 연관관계와 연관관계의 주인 1- 기본 (05:00 부터) 에서 설명하고 계십니다.

추가로 아래 링크를 참고해주세요

https://www.inflearn.com/questions/258175


감사합니다.

0

조진수님의 프로필

조진수

질문자

2022.05.25

@OneToMany(mappedBy = "member",cascade = CascadeType.ALL)
private List<Post> posts=new ArrayList<>();

같이 수정하였더니 null 객체 참조 오류가 사라졌습니다. 엔티티에 저런식으로 필드에 필요한 객체를 생성해야 하나요?