해결된 질문
작성
·
325
0
안녕하세요! 어쩌면 간단한 질문일 수도 있겠습니다만, 좀 헷갈려서 여쭤봅니다.
양방향 연관관계를 맺어줄 때, 순수한 객체 관계를 고려하면 항상 양쪽다 값을 입력해야 한다고 강의에서 봤습니다. 그래서 연관관계 편의 메소드도 생성하고요.
그런데 문득 궁금해졌습니다. 서로 관계를 맺어준 객체들은 어차피 해당 메소드가 종료되면 사라지지 않나요? 결국 DB에 외래키를 가진 테이블 연관관계로만 존재할텐데, 곧 소멸될(?) 객체끼리의 참조 관계 설정을 왜 해줘야 하나 궁금합니다.
예를 들어 memberA에게 Team1의 참조 연관관계를 맺어준다고 해도 메소드가 종료되면 그 객체의 관계는 DB 테이블로만 남게 되니 아무 소용이 없지 않나 생각이 들었습니다.
혹시 해당 요청 내의 메소드 안에서 수월한 비즈니스 로직 처리를 위해 일회성으로 객체끼리 참조 연관관계를 맺어주는 걸까요?
답변 1
1
안녕하세요. 김동민님, 공식 서포터즈 코즈위버 입니다.
객체간의 양방향 관계설정은 말씀하신것처럼 객체 그래프 탐색을 하기 위함입니다.
관계 설정이후 메소드가 바로 종료되어 버리는 경우라면 관계설정이 낭비일 수도 있지만, 한 트랜잭션 안에서 객체를 다시 사용하는 경우, 관계설정이 되어있지 않을 경우 NullPointerException 이 발생할 수 있습니다. 이를 방지하기 위해서 관계설정을 하는 것이 좋습니다.
감사합니다.