Jump to String Boot 를 공부하면서 궁금증이 생겼다.
내가 알기론 Entity 의 참조 필드를 선언해 줄 때
N : 1 관계에선 new 를 사용해 초기화 해줘야 되는걸로 알고있었는데
private List<Member> members = new List<>();
Jump to Spring boot 에서는 초기화를 하지 않는 방식으로 적혀있다.
private List<Member> members;
두 방법 모두 정상적으로 작동을 하지만 이렇게 초기화를 하지않고, 하고 차이가 무엇인지 궁금했다.
초기화 없이 프로젝트를 실행해봐도 차이점을 채감할 수 없어서 구글링을 해본결과 2가지 이유가 있다고한다.
초기화를 해줘야하는 2가지 이유가 있다고 한다.
필드에서 new 로 선언해주지 않는다면 List 의 값은 null 이 될테고,
이 때 List 를 조회하는 쿼리가 있다면 NPE 가 발생한다는 의미 같다.