Inflearn Community Q&A
궁금한게 있습니다.
Written on
·
177
0
처음 설계를 할때 단방향 매핑을 하라고 하셨잖아요.
그게 양방향을 고려하지 않는 상태에서 테이블과 유사하게 만드는 건가요?
예를들면
테이블이
id primary key,
name
===================================
id,
other_id forigin key,
name
으로 되어있다고 하면 이렇게 되있다면
private int id;
private String name;
-------------------------------------------------------
private int id;
@JoinColum(name = "other_id")
private int otherId;
private String name;
이렇게 설계하는 건가요? 이 질문을 하는 이유는
강의에는 team과 member로 하셨잖아요. 왜래키 지정을 member에 하셨는데.. team에도 왜래키 지정을 해야하는지 헷갈려서 질문 올립니다.
private int id;
private String name;
@JoinColum(name = "other_id2")
private int otherId2;
-------------------------------------------------------
private int id;
@JoinColum(name = "other_id")
private int otherId;
private String name;
이런식으로 하는건 아닌것 같긴 하지만 단방향 매핑으로만 한다는게 이런의미인지 아닌지 정확하게 알고 싶어서 질문 작성합니다.
Quiz
객체와 관계형 데이터베이스가 관계를 표현하는 방식의 근본적인 차이는 무엇일까요?
객체는 ID, 테이블은 이름
객체는 참조, 테이블은 외래 키
객체는 속성, 테이블은 레코드
객체는 단방향, 테이블은 양방향
Answer 2
1
0
안녕하세요. yong hun park님
단방향 매핑이라는 뜻은 한쪽 방향으로만 연관관계를 매핑하는 것입니다.
일대다, 다대일 중 하나만 매핑하는 것이지요. 일대다, 다대일 양쪽을 다 매핑하면 양방향 매핑이라 합니다.
예를 들어볼께요. 다음에서 테이블 구조는 변하지 않습니다.
테이블 구조
MEMBER
id
name
team_id(fk)
TEAM
id
name
==단방향 매핑==
(다대일 Member -> Team)
Member
Long id
String name
@ManyToOne
@JoinColumn("team_id")
Team team
Team
id
name
==양방향 매핑==
(다대일 Member -> Team, 일대다 Team -> Member)
Member
id
name
@JoinColumn("team_id")
Team team
Team
id
name
@OneToMany(...)
List<Member> members
감사합니다^^





