inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 ORM 표준 JPA 프로그래밍 - 기본편

실전 예제 3 - 다양한 연관관계 매핑

안녕하세요 Entity에서 Map 프로퍼티 질문입니다!

330

최창준

작성한 질문수 5

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 아니요
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
안녕하세요 강의를 다 듣고 따로 실습을 진행하다가 궁금함이 생겨 질문드립니다! 체스 게임을 구현 중 Board 클래스에 Map형태로 key값은 Position 클래스 value는 Piece 클래스로 설정하였고 @MapKeyJoinColumn어노테이션을 사용하여 연관관계 매핑하였습니다
생성한 board를 초기화할 때 Position과 Piece도 같이 초기화해주는데 Map부분 테이블이 Position보다 먼저 생성되어 오류가 발생합니다 확인해보니 hibernate에서 Map Key값을 cascade를 지원하지 않는다고 합니다
1. Key cascade를 지원하지 않으니 board 초기화할때 key를 생성하고 디비에 저장시키는 작업을 먼저 진행할 수 밖에 없는걸까요? 혹시 다른 방법이 있을까요? ( 위 코드에서는 BoardFactory에서 Position을 먼저 디비에 flush 시키는 코드 추가 )
 
2. 현업에서는 엔티티에서 Map 속성을 종종 사용하는지 지양하는지 궁금합니다

 

@MapKeyJoinColumn JPA java

답변 1

0

김영한

안녕하세요. 최창준님

Map을 기능을 지원하기는 하지만, List를 사용하시는 것이 더 간단하게 많은 문제를 해결할 수 있습니다. 꼭 필요한 경우 자바 애플리케이션에서 List를 Map으로 변환해서 사용하시면 됩니다.

가급적 List를 사용하는 것을 권장드립니다.

감사합니다.

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

54

2

inheritance startegy 선택시 고려사항

0

35

1

Entity 동등성 비교

0

38

1

실무 조언 관련 질문입니다.

0

64

1

H2데이터베이스 파일 생성

0

76

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

66

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

62

1

JPQL 메소드와 락

0

62

1

Delivery @OneToOne

0

70

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

104

2

UnsupportedOperationException 발생

0

97

3

H2 Database 연결이 안됩니다.

0

101

2

연관관계 매핑 질문드립니다.

0

93

2

h2데이터베이스 실행오류

0

114

2

persistence.xml

0

119

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

87

1

영속성 컨텍스트

0

74

1

JPA 프록시

0

105

1

Native Query와 MyBatis

0

81

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

97

1

임베디드 타입 예시 코드 관련 질문

0

125

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

100

3

인텔리제이 패키지 커서 단축키 질문

0

112

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

151

1