강의

멘토링

로드맵

Inflearn Community Q&A

asqwklop12's profile image
asqwklop12

asked

Java ORM Standard JPA Programming - Basics

Bidirectional Association and the Owner of Association 2 - Caveats, Summary

궁금한게 있습니다.

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;

이런식으로 하는건 아닌것 같긴 하지만 단방향 매핑으로만 한다는게 이런의미인지 아닌지 정확하게 알고 싶어서 질문 작성합니다.

javaJPA

Quiz

객체와 관계형 데이터베이스가 관계를 표현하는 방식의 근본적인 차이는 무엇일까요?

객체는 ID, 테이블은 이름

객체는 참조, 테이블은 외래 키

객체는 속성, 테이블은 레코드

객체는 단방향, 테이블은 양방향

Answer 2

1

asqwklop12님의 프로필 이미지
asqwklop12
Questioner

넵 감사합니다. 

0

yh님의 프로필 이미지
yh
Instructor

안녕하세요. 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

감사합니다^^

asqwklop12's profile image
asqwklop12

asked

Ask a question