inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

JPA 연관관계 관련하여 질문이 있습니다.

276

naeyoung.kim

작성한 질문수 1

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요! 영한님

설명이 어려워 예시를 들어서 설명하겠습니다.
예를 들어 이력서 테이블이 있고, 이력서_이미지라는 테이블이 있다고 가정하겠습니다.
```
이력서 table
- id(auto increment)
- 이름
- 학력
- 경력
- 등등

이력서_이미지
- id(auto increment)
- resume_id
- type(경력에 들어가는 사진인지, 학력에 들어가는 사진인지)
- 이미지 path
```
 
@Entity
public class Image {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "resume_id")
private Resume resume;

@Enumerated(EnumType.STRING)
private ImageType type;

private String imagePath;
}
 
@Entity
public class Resume {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

// 경력 사진 List
@OneToMany(mappedBy = "resume", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private List<Image> careerImages = new ArrayList<>();

// 학력 사진 List
@OneToMany(mappedBy = "resume", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private List<Image> educationImages = new ArrayList<>();
}
질문 1. 부모 객체(Resume)에서 이렇게 자식객체(Image)의 Type에 따라서 다른 list를 들고 오고 싶은데 이건 어떻게 설정하면 될까요??
- @Converter를 사용해야할까요??

질문 2. @OneToMany로 list를 들고올때 10개만 들고 오게 한다거나 이런 것도 가능할까요?

spring spring-boot JPA java

답변 1

1

김영한

안녕하세요. naeyoung.kim님

  1. JPA에서 이렇게 매핑하는 것은 지원하지 않습니다.

이 문제를 해결하려면 CarrerImage, EducationImage와 같은 식으로 별도로 풀어내야 합니다.

다른 방법으로는 Image는 하나의 컬렉션만 사용하고 찾아온 다음에 구분해서 사용하면 됩니다.

  1. 이 부분은 JPQL을 사용해서 처리하셔야 합니다.

    감사합니다.

changeTeam 메서드 질문

0

35

1

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

88

1

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

129

3

MemberRepository 구현체

0

73

1

pdf 표현 질문드립니다.

0

78

1

로그가 남지 않는 문제.

0

100

1

테스트 라이브러리가 강의는 junit4가 맞나요??

0

80

2

pdf 파일과 차이점이 있는 것같은데 문제 없나요?

0

77

2

@PrePersist, @PreUpdate 호출 시점 질문드립니다.

0

104

2

Sort 인터페이스는 잘 사용 안하나요?

0

61

1

스캔대상 질문드립니다.

0

50

1

하이버네이트6에서의 최적화에 이은 질문

0

92

1

save() vs saveAndFlush DB 통신 횟수

0

61

1

순수 JPA 리포지토리 코드 수정부분

0

93

2

bulk연산 후 flush하는 이유를 모르겠어요

0

164

3

bulk insert 질문입니다.

0

191

2

교만했던 것 같아요.

0

152

1

RESTful 강의는 안하시는 건지 궁금합니다.

0

154

2

동적 테이블에 대한 질문

0

90

1

영속성 전이와 연관관계

0

142

2

강의 10:25 질문

0

80

1

단건 update 질문

0

104

2

엔티티 와 도메인의 경계

0

132

1

UsernameOnlyDto 타입 type mismatch 오류

0

123

1