인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

최창준님의 프로필 이미지
최창준

작성한 질문수

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

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

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

작성

·

282

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 속성을 종종 사용하는지 지양하는지 궁금합니다

 

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 최창준님

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

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

감사합니다.

최창준님의 프로필 이미지
최창준

작성한 질문수

질문하기