inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

조회용 샘플 데이터 입력

10:35 메서드 추출

824

omimabi77

작성한 질문수 15

0

public void dbInit1(){ Member member = new Member(); member.setName("userA"); member.setAddress(new Address("서울","1","1111")); em.persist(member); Book book1 = new Book(); book1.setName("JPA1 BOOK"); book1.setPrice(10000); book1.setStockQuantity(100); em.persist(book1); Book book2 = new Book(); book2.setName("JPA BOOK2"); book2.setPrice(20000); book2.setStockQuantity(100); em.persist(book2); OrderItem orderItem1 = OrderItem.createOrderItem(book1, 10000, 1); OrderItem orderItem2 = OrderItem.createOrderItem(book2, 20000, 2); Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); Order order = Order.createOrder(member, delivery, orderItem1, orderItem2); em.persist(order); } public void dbInit2(){ Member member = new Member(); member.setName("userB"); member.setAddress(new Address("진주","2","1111")); em.persist(member); Book book1 = new Book(); book1.setName("JPA1 BOOK"); book1.setPrice(10000); book1.setStockQuantity(100); em.persist(book1); Book book2 = new Book(); book2.setName("JPA BOOK2"); book2.setPrice(20000); book2.setStockQuantity(100); em.persist(book2); OrderItem orderItem1 = OrderItem.createOrderItem(book1, 10000, 1); OrderItem orderItem2 = OrderItem.createOrderItem(book2, 20000, 2); Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); Order order = Order.createOrder(member, delivery, orderItem1, orderItem2); em.persist(order); }

 

이렇게 해줬는데도 메서드 추출부분에서

private static Member getMember() { Member member = new Member(); member.setName("userA"); member.setAddress(new Address("서울","1","1111")); return member; }

 

이렇게 작성됩니다.

영한선생님처럼 인자가있는 메서드로 추출하려면 어떻게 해야하나요?

spring JPA java spring-boot

답변 1

4

David

안녕하세요. omimabi77님, 공식 서포터즈 David입니다.

서로 다른 메서드에, 서로 다른 값을 다루는 같은 메서드가 존재해야 합니다.

아래와 같은 조건일 때 ctrl + alt + M (M을 2번) 누르시면 파라미터와 함께 추출되는 extract method dialog 창이 나옵니다.

void a() {
  Member member1 = new Member();
  member1.setName("david1");
  member1.setAddress(new Address("city1"));
}

void b() {
  Member member2 = new Member();
  member2.setName("david2");
  member2.setAddress(new Address("city2"));
}

 

아울러, 현재 질문 글과 같이 코드 포매팅 없이 코드를 올려주시면 코드를 읽는 데 어려움이 있습니다. 개행과 들여쓰기가 된 코드를 올려주시면 감사하겠습니다.

감사합니다.

강의 관련 외 질문입니다.

0

69

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

1

92

1

BeanCreationException

0

92

3

Update 후 UpdateMemberResponse 매핑할 때

0

50

1

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

0

101

2

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

0

71

1

Query Dsl Q파일 질문입니다.

0

84

1

루트 쿼리라는것은

0

60

1

메서드를 분리하는 기준

0

67

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

113

3

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

0

86

2

fetch join과 영속화와 OSIV의 관계

0

88

2

Distinct 사용 전 결과에 대한 의문

0

117

2

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

0

60

1

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

0

78

2

dto 필드 속 엔티티 여부

0

60

1

뷰템플릿 사용 시

0

79

2

Result 클래스 관련 질문

0

56

1

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

0

86

1

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

0

138

1

OSIV ON 상태일 때

0

98

1

fetch join VS fetch join 페이징 궁금증

0

187

2

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

0

108

1

16강 17강 간단 정리 이게 맞을까요 ?

0

167

2