작성
·
202
0
board 테이블 (원글 부모글)
comment 테이블 (댓글)
있다고 가정했을떄 ..
comment가 DB에 입력이 되어야 하니까
@ManyToOne
Board board;
이런식으로 들어가자나요 ??? entity 클래스에서요
근데 sql적으로 보면 board글의 몇번에 comment 자나요 ?
ex ) boardId=10 번의 코멘트 10개 뭐 이런식이니까
boardId를 Comment클래스에 @ManyToOne을 적용시킬떄는
아무 표기를 안해줘도 되는건가요 ???
그럼 만약에 글번호 5번에 대한 코멘트를 저장할려면
@ManyToOne 만 명시하고
레포지토리.save(comment객체);
이런식으로 해도되는걸까요 ? 그러면 부모글의 몇번글에 대한 코멘트인지 모르지 않나요 ??
아직 초짜라 강의 2번쨰 듣는데 ..궁금한게 있어서 질문드립니다 .
답변 3
0
JPA라서 그걸 만들어 주는게 아니라 hbm2ddl에서 create또는 update 이런걸로 설정해둔 경우에 엔티티에 맵핑되는 테이블을 만들어주기 때문에 그런게 생기는거구요. validate로 설정하면 만들어 주진 않고 맵핑이 되는지 검사만 합니다.
말씀하신대로 @ManyToOne만 사용하면 그렇게 되긴하지만 항상 자식 테이블쪽에 FK가 생기는 거라고 이해하시면 안되요. 그건 맵핑 애노테이션을 쓰기 나름이에요. 원한다면 관계를 관리하는 테이블로 맵핑 시킬 수도 있습니다.
0
제가 궁금한게 .sql로 질문드리면.
board id = 3번쨰에
2번쨰 댓글이라고 한다면
comment 테이블은 보통 board_id=3, comment_id=2 ...... 이렇게 db에 들어가는데 .jpa에서는 ManytoOne만 해주면 자식 테이블 그러니까 comment 테이블에 자동으로 board_id 칼럼이 생기는건가요 ?
0
게시물에 달린 댓글의 순서는 여러 가지 방법으로 관리할 수 있는데 가령, 댓글 등록 시간 기준으로 정렬해서 보여주거나, 좋아요가 많은 순으로 보여주거나, 직접 댓글 순서를 DB에 저장해서 관리하거나.. 그런건 비즈니스 로직에 따라 달라질 수 있습니다.
단순히 관계를 맺는다고 "몇번째 맺어진 관계"이냐 까지 JPA나 DB가 정해주는건 아닙니다.