inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

값 타입 컬렉션 듣다가 생성 질문합니다~

147

조찬수

작성한 질문수 2

0

연관관계에서 각종 생성, 조회 등에 대해서 배울 수 있어서 좋았습니다.

그런데, 생성에 대해서 궁금증이 생겼는데요

예를 들어 주문 서비스를 만들 때 주소가 간단하다면 주소 객체를 생성과 삽입이 주문 서비스 내에서 처리가 가능합니다

(여기서 Address는 엔티티라고 가정하겠습니다!)

Address address = new Address();

address .setCity("seoul");

address .setZipCode("123123");

order.setAddress(address);

이런식으로 주문 Service에 Address 객체를 생성해서 set하면 됩니다

그런데, 혹시 Address가 너무 복잡한 로직이 필요해서

Address address = AddressService.makeAddress(addressDto);

이렇게 서비스를 한번 거쳐서 주소를 입력하도록 만든다면....

다음 중에 어떤 방식으로 구현하는게 맞을까요?

1. Controller에서 미리 Address를 만들고 주문 서비스의 매개변수에 넣어준다

*OrderController.java
Address address = AddressService.makeAddress(addressDto);

OrderService.order(orderDto, address);

2. 주문 Service 안에서 Address를 만들어서 넣는다

*OrderService.java
Address address = AddressService.makeAddress(addressDto);

order.setAddress(address);

어느 방식이 효율적일지 질문드립니다~!

java JPA

답변 1

0

김영한

안녕하세요. 찬수님

저는 사실 1,2번이 상황에 따라서 장단점이 있다 생각합니다.

2번 방식이 서비스 로직에서 이런 부분을 해결하기 때문에 더 선호됩니다.

그런데 파라미터를 서비스에 추가로 넘기고 Address를 만들어야 하기 때문에 서비스 객체가 복잡해집니다.

1번 방식을 사용하면 서비스 객체가 단순해지는 장점이 있습니다.

감사합니다.

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

0

55

2

inheritance startegy 선택시 고려사항

0

36

1

Entity 동등성 비교

0

38

1

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

0

65

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