inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

값 타입 컬렉션

포스트와 리플의 매핑

해결된 질문

368

김태희

작성한 질문수 6

0

수정, 처음에 리플로 썻다가 라이크로 바꿨습니다. 제가 질문하면서 헷갈렸습니다.

유저

포스트 

포스트 라이크

3가지가 있다면

라이크에는 매니투원으로 양방향설계를 하고 싶습니다.

단 시퀀스 id를 안 넣고 하고 싶은데요.

@Idclass(ReplyPK)

@Id @manytoone User userid 

@Id @manytoone Post postid 

Localdatetime created = Localdatetime.now()

이렇게 구현 하려니까 오류가 나더군요...(조인컬럼은 여기서는 생략)

아이디 어노테이션 다이브 해서 주석 보니 아이디가 될 수 있는 값 리스트가 정의 돼 있어서 제가 원하는 설계(의미없는 시퀀스가 기본키로 하기 싫을 때! 또는 디비 입장에서는 유저와 포스트아이디로 이미 기본이다 완성 됐을 때 )는 못 하던데 선생님은 이 경우 디비관리자에게 키 바꿔달라하시나요?
어떻게 하실지 궁금합니다. 

결국 제약 때문에 만들어진 모양 입니다. sid 하나 넣고 그것을 키로 만들었습니다.

java JPA

답변 2

1

김태희

제가 원하던 매핑도 되는 군요. 제 실수 였습니다. 감사합니다.

1

김영한

안녕하세요. XIYO님 잘 해결하셨습니다.

XIYO님이 질문했던 매핑도 지원합니다.

저는 기존 DB가 이렇게 운영되고 있었다면 그 정책을 따르고, 제가 새로 만드는 경우에는 항상 비즈니스 의미가 없는 새로운 단일 PK를 하나 만드는 것을 선호합니다.

오류는 아마 매핑을 잘못하셔서 오류가 발생했을거에요. 다음 코드를 참고해주세요.

public class MemberProductId implements Serializable {

  private String member; //MemberProduct.member와 연결

  private String product; //MemberProduct.product와 연결

}

@Entity

@IdClass(MemberProductId.class)

public class MemberProduct {

  @Id

  @ManyToOne

  @JoinColumn(name = "MEMBER_ID")

  private Member member; //MemberProductId.member와 연결

  @Id

  @ManyToOne

  @JoinColumn(name = "PRODUCT_ID")

  private Product product; //MemberProductId.product와 연결

}

추가로 복합키 매핑에 대한 자세한 내용은 JPA책을 참고해주세요.

6.4.3 다대다: 매핑의 한계와 극복, 연결 엔티티 사용

7.3 복합 키와 식별 관계 매핑

감사합니다.

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

0

40

1

H2데이터베이스 파일 생성

0

48

2

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

0

49

2

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

0

46

1

JPQL 메소드와 락

0

49

1

Delivery @OneToOne

0

55

1

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

0

85

2

UnsupportedOperationException 발생

0

80

3

H2 Database 연결이 안됩니다.

0

87

2

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

0

79

2

h2데이터베이스 실행오류

0

103

2

persistence.xml

0

101

2

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

0

76

1

영속성 컨텍스트

0

61

1

JPA 프록시

0

87

1

Native Query와 MyBatis

0

62

1

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

0

81

1

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

0

110

3

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

0

89

3

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

0

104

2

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

0

134

1

양방향 연관관계 시 연관관계 주인을 설정하는 이유

0

67

1

임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.

0

95

1

데이터베이스가 초기화되는 것 같아요

1

173

2