inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

간단한 주문 조회 V1: 엔티티를 직접 노출

@OneToMany에 관한 질문

280

fightnyy

작성한 질문수 21

1

안녕하세요 영한님. 질문이 있어 이렇게 글을 남깁니다. 

public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@OneToMany(mappedBy = "user")
private List<Order> orders;
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;


@Column(name = "orderId")
private Long orderId;

코드가 이렇게 다른 케이스로 2가지가 있는데 위에는 위에는 일대다를 나타내는 @OneToMany를 사용하였고 밑에는 그냥 @Column을 사용했습니다. 만약 아래와 같은 요구조건이 들어왔다고 가정해보겠습니다. "사용자의 주문중 현재 Active 상태인 것을 조회하라"

이 경우 각각은 

public List<Order> getActiveOrder () {
// 모종의 방법으로 user 찾음
List<Order> orders = user.getOrders(); // 여기서 Order 테이블에 쿼리 나감
List<Order> result = new ArrayList<>();
for (Order order : orders) {
if (order.getStatus()) == ACTIVE {
result.add(order);
}
}
return result;
}
public List<Order> getActiveOrder () {
//모종의 방법으로 user 찾음
Long orderId = user.getOrderId();
return orderRepository.findOrderByStatusAndId(ACTIVE, user.getOrderId());
}

이렇게 될거 같은데 위는 user의 모든 Order를 찾은 다음 결과를 도출해내니까 아래의 경우보다 훨씬 느릴거 같은데 이 경우엔 @OneToMany 를 안쓰는 게 더 좋은가요??

java JPA spring spring-boot

답변 1

0

김영한

안녕하세요. fightnyy님

네 이럴 경우에는 @OneToMany를 사용하지 않아도 됩니다.

추가로 다음도 참고해주세요.

https://www.inflearn.com/questions/358925

감사합니다.

 

@JsonIgnore 이후 Internal Server Error가 발생하지 않습니다.

0

32

2

강의 관련 외 질문입니다.

0

91

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

1

111

1

BeanCreationException

0

104

3

Update 후 UpdateMemberResponse 매핑할 때

0

65

1

트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?

0

109

2

페이징 + 검색조건 관련해서 질문드립니다.

0

77

1

Query Dsl Q파일 질문입니다.

0

92

1

루트 쿼리라는것은

0

68

1

메서드를 분리하는 기준

0

76

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

123

3

연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략

0

97

2

fetch join과 영속화와 OSIV의 관계

0

101

2

Distinct 사용 전 결과에 대한 의문

0

124

2

레포지토리 계층에서의 트랜잭션에 대한 의문

0

65

1

영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.

0

82

2

dto 필드 속 엔티티 여부

0

67

1

뷰템플릿 사용 시

0

86

2

Result 클래스 관련 질문

0

59

1

@PostConstruct 프록시 관련 질문드립니다

0

91

1

DTO 대신 Form 사용은 안되나요?

0

142

1

OSIV ON 상태일 때

0

102

1

fetch join VS fetch join 페이징 궁금증

0

192

2

양방향 연관관계 알아보는 법?

0

113

1