안녕하세요. addStudy() 관련 질문입니다.

20.03.25 17:04 작성 조회수 39

0

삭제된 글입니다

답변 1

답변을 작성해보세요.

0

사실 어느쪽에 두어도 크게 문제는 없습니다. 중요한건 두 엔티티간의 관계가 객체적으로도 엔티티적으로도 설정 되어야 한다는 것이 중요합니다.

"편의성 메서드 위치가 Study에 있어야 좀 더 주인임을 표현한다"는 의견에 크게 동의할 생각이나 거부감도 없습니다. 실제로 대부분의 OneToMany 양방향에서 Many에 해당하는 쪽이 관계의 주인이 되는 경우가 흔합니다. 이유는 Many쪽 엔티티에 FK를 두는 식으로 테이블을 설계하는 경우가 많으니까요. 그런데 객체 관계상으론 One이 좀 더 관계의 핵심적인 역할을 하는 경우가 많습니다. Post 와 Comment의 관계도 비슷하게 설계할 수 있죠. 그래서 Post에 addComment와 removeComment를 주고 그 안에서 두 엔티티간의 관계를 설정하는 코드가 더 흔할 겁니다. 물론 말씀하신대로 반대로 Comment에다가 addPost를 해도 되지만 뭔가.. Comment 입장에선 Post가 하나뿐인데 add를 쓰는게 조금 부자연스럽고 어색하지만 메소드 이름만 바꾸면 그것도 괜찮을 거 같네요.

어찌됐든 관계의 주인은 해당 메서드들의 위치로 판단하는게 아니라 맵핑을 보고 파악해야 하는겁니다.