묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 데이터 JPA
페치조인 관련 질문
페치조인은 그렇다면 어떤 경우에 사용해야 한다고 봐야 하나요 ?양방향 매핑이 되어 있는 엔티티들의 경우에는 거의 쓴다고 보면 될까요 ?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@oneToMany의 @oneToMany
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니요) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예EntityA 1:N EntityBEntityB 1:N EntityC이런식으로 있을 때 ,EntityA 가 EntityB를 @oneToMany로 가지고있고,EntityB 가 EntityC를 @oneToMany로 가지고 있습니다. 배치사이즈 옵션을 넣고select a from EntityA a 했을때 , EntityA의 갯수만큼 EntityB에 in절로 EntityA의 키값을 넣어서 @oneToMany를 한번에 끌고왔다고 했을 때 ,EntityB안에있는 EntityC를 또 EntityB의 갯수만큼 EntityC에 in절로 EntityB의 키값을 넣어서 한번에 끌고 올 수 있는 방법이 있는지 궁금했습니다. 다중 페치조인 안되는걸 알지만 예를 들어서 이런걸 원한다고 생각하시면 될 것 같습니다select a from EntityA a join fetch EnitityB(List) b join fetch b.EntityC(List)이런식으로 컬럼 갯수가 일대다 일대다로 기하급수적으로 증가하는 경우인데배치사이즈를 사용하여 select a from EntityA a 를 했을 땐 a.EntityB 에 접근할때 당연히 in 절로 가져와주지만 EntityB의 일대다인 EntityC 를 조회 할 땐 N+1이 다시 터집니다엮여있는 모든 연관관계들을 IN절로 태우고 싶은데 방법이 없을까요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
사용자 정의 함수 방언 등록
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]사용자 정의함수를 db에 등록시켜놓은 다음에 jpql로 사용을 해보니 따로 방언을 등록하지 않아도 사용이 가능합니다.List<String> str = em.createQuery("select create_prefix(m.username) from Member m", String.class).getResultList();create_prefix는 직접 등록한 함수입니다.수업에서는 방언으로 사용자 정의 함수를 등록해야지 적용이 된다고 하는데 이 경우 왜 작동되는지 알고싶습니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 매니저 두개 사용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]실무에서 트랜잭션 매니저를 두개 이상 사용하는 경우가 많나요?기본적으로 스프링부트가 빈에 트랜잭션 매니저를 등록해주는데그거 말고 다른 트랜잭션 매니저를 사용해야하는 경우들은 어떤 경우들이 있을까요 ?검색 해보니 데이터베이스를 나눌 때 두개이상을 등록하는데맞을까요? 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
v6에서 groupingBy가 아닌 distinct
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요! [강의] 주문 조회 V6: JPA에서 DTO로 직접 조회, 플랫 데이터 최적화 관련해서 궁금한 점이 있습니다. findAllByDto_flat()에서 distinct를 통해 중복을 제거하는게 아니라 강의와 같이 findAllByDto_flat() 호출 후 groupingBy를 통해 중복을 제거했을 때 서로 어떤 차이가 있나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
실제 서비스 구현과 DB
안녕하세요! 강사님 ㅎㅎ컴퓨터 공학 전공자이고 졸업 후 취준을 하고 있습니다 ㅎㅎ지금까지는 NEST.JS, EXPRESS.JS로 웹서비스 REST API 개발 프로젝트 경험이 있습니닷스프링과 스프링부트는 강사님의 커리큘럼을 꾸준히 따라오며 곧 MVC2편이 끝납니다 ㅎㅎ 1. 이어서 DB1,2편까지만 듣고도 REST API 기반 서비스를 구현 할 수 있을까요? JPA 로드맵을 사서 듣고 나야 서비스 구현을 할 수 있는 정도가 되는건지 궁금합니닷!(JPA 로드맵을 들으면 좀 더 실무에 가까운 퀄리티 높은 서비스를 만들 수 있는건지, 아니면 아예 들어야만 서비스 구현의 기본 역량을 갖출 수 있는건지 궁금합니닷)혹은 야생형으로 DB1,2편을 생략하고 JPA로드맵을 먼저 들어가도 고생돼도 할만할지 궁금합니다 프로젝트를 하면서 공부 하고 싶은데 DB 설계가 안되면 프로그램 설계가 막막하니.. 여쭤보게 됐습니다 답변 부탁 드립니닷!
-
해결됨Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
테스트 데이터 셋업
안녕하세요 강의 잘 보고 있습니다.다름이 아니라 이렇게 H2등을 쓰지않고 테스트 할 경우, 많은 테스트 데이터들을 셋업하는 것이 힘들것 같은데 보통 어떻게 처리하시나요?h2등을 사용한다고 하면 강의에서 알려주신 것 처럼 보통 .sql을 실행시켜서 사용할텐데,이렇게 소형테스트들에 테스트데이터를 java code로 반복문 돌면서 생성하자니 좀 번거러운 것 같은데 혹시 다른 방법이 있을런지 혹은 어떻게 하시는지 궁금하여 여쭤봅니다.환절기가 다가오는데 더위 조심, 감기 조심 하시길 바랍니다.감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
수업 자료 코드 오타
강의에서는 List<Order> orders = orderRepository.findAllByString(new OrderSearch()); 로 수업해주시는데 강의자료에는 List<Order> orders = orderRepository.findAll(); 로 나와있습니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
tcp 접속에서 오류. File corrupted while reading record
안녕하세요.먼저 h2를킨다음, application.yml 파일에서주소 url: jdbc:h2:~/jpashop 를 통해 실행하면, User 폴더에 jpashop.mv 파일이 생성은 됩니다. 그런데 tcp 를 통해 접속하기위해주소 url: jdbc:h2:tcp://localhost/~/jpashop 를 입력한다음 intelliJ를 다시 실행하니 File corrupted while reading record: null. Possible solution: use the recovery tool [90030-214]실행창에 이런 경고가 뜨면서 연결되지않고 꺼집니다. h2에 문제가있나싶어서 h2를 전부 제거하고 1.4.200 버전으로 새로 깔았는데도 문제가 해결되지 않습니다.이전동안 문제없이 잘되었는데 알수없는이유로 안되네요 어디가 문제일까요...
-
해결됨실전! Querydsl
@QueryProjection 사용시 집합함수는 불가능한가요?
.select(new QDto(point.p.sum())) .from(point) 이런식으로 할려는데 dto에 integer로 했는데 안되네요집합함수같은거는 dto로 바로 반환 불가능한가요
-
미해결실전! 스프링 데이터 JPA
@Autowired와 @Transactional으로 EntityManager주입 받기
@Autowired로 EntityManager를 주입받을때 여러 쓰레드가 동시에 접근하면 동시성 문제가 발생합니다.하지만 @Transactional을 추가해준다면//1 @Repository @RequiredArgsConstructor @Transactional public class AutowiredRepository { private final EntityManager em; } //2 @Repository public class PersistenceContextRepository { @PersistenceContext private EntityManager em; }@PersistenceContext 처럼 Transaction에 의해 쓰레드간 동시성 문제를 해결해준다고 생각하는데 맞게 생각한건지 궁금합니다.두가지 방법 다 EntityManager를 호출 할때마다 Proxy를 통해 EntityManager를 생성하여 Thread-Safe를 보장해준다라고 볼수 있는 건가요?? 답변주시면 정말 감사하겠습니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
컬렉션 값 연관 경로중 문법이 바뀐게 맞는걸까요?
경로표현식 컬렉션 값 연관경로 강의내용에서String query = "select t.members.size From Team t"; Integer result = em.createQuery(query, Integer.class) .getSingleResult(); System.out.println("result = " + result);이런식으로 하신게 있는데 제 코드에선 안돌아가더라구요결과값도 안나오고,,검색해보니깐 쿼리부분을String query = "select size(t.members) From Team t";이런식으로 바꾸면 되던데 문법이 바뀐게 맞을까요? 아니면 코드 에러인가요일단 제 디펜던시는 이렇습니다 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>6.2.7.Final</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.200</version> </dependency>
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 편의 메서드 주인
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요. 연관관계 메서드에서 addOrderItem메서드의 orderItem.add(orderItem)부분을 보면 연관관계 주인이 아닌곳에 값을 설정해 주는데 이렇게 하면 값이 들어가지 않는다고 알고 있는데 왜 주인이 아닌곳에 값을 넣어주는 건가요??바로 밑에 orderItem.setOrder(this) 이런식으로 오더를 넣어주는 상황이면 주인이 아닌쪽에서도 값을 넣을 수 있는건가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
14강 @PutMapping 작성에 오류가 발생합니다.
UserController.javaUserUpdateRequest.java 지난 강의에서 사용한 @PostMapping @GetMapping, 이번강의에서 PutMapping과 같이 사용한 @DeleteMapping은 정상적으로 작동이 되지만 @PutMapping만 문제가 발생하여 질문드립니다.Import가 안됐나 싶어 Import를 시도해보았지만 Import와 관련된 문제는 아니었던것 같습니다. @PutMapping과 updateUser의 @RequestBody 공통적으로 Annotations are not allowed here가 발생합니다.
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
String accessToken = authorizationHeader.split(" ")[1];은 accessToken이 맞나요?
강사님 안녕하세요 수업 잘 듣고 있습니다. 덕분에 도전하기 힘들었던 인증인가를 조금이나마 이해하게 되고 있는 것 같습니다. 수업을 듣던 중 한가지 궁금한 점이 생겨서 질문 남기게 되었습니다.LoginController에서 String accessToken = authorizationHeader.split(" ")[1];이라는 변수를 선언하는데 저는 authorizationHeader.split(" ")[1]이 accessToken인지 accessToken을 포함한 jwt인지가 헷갈립니다. 혹시 이 부분과 관련하여 제가 어떻게 이해하면 좋을지 조언 해주실 수 있으실까요? 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
6:40 샘플데이터 EntityManager 인식문제.
트랜잭션안에 쓸수있는 EntityManager 없다고 에러가 뜹니다. 설정 문제인걸까요?org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initDb': Invocation of init method failed; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:921) ~[spring-context-5.3.29.jar:5.3.29] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.29.jar:5.3.29] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.14.jar:2.7.14] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.14.jar:2.7.14] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.14.jar:2.7.14] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.14.jar:2.7.14] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.14.jar:2.7.14] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.14.jar:2.7.14] at jpabook.jpashop.JpashopApplication.main(JpashopApplication.java:10) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-2.7.14.jar:2.7.14] Caused by: javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:299) ~[spring-orm-5.3.29.jar:5.3.29] at jdk.proxy3/jdk.proxy3.$Proxy119.persist(Unknown Source) ~[na:na] at jpabook.jpashop.InitDb$InitService.dbInit1(InitDb.java:34) ~[main/:na] at jpabook.jpashop.InitDb.init(InitDb.java:20) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.3.29.jar:5.3.29] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.3.29.jar:5.3.29] ... 23 common frames omitted 제코드입니다. package jpabook.jpashop; import jpabook.jpashop.domain.*; import jpabook.jpashop.domain.item.Book; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import javax.persistence.EntityManager; @Component @RequiredArgsConstructor public class InitDb { private final InitService initService; @PostConstruct public void init() { initService.dbInit1(); } @Component @Transactional @RequiredArgsConstructor static class InitService { private final EntityManager em; private 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("JPA2 BOOK"); book2.setPrice(20000); book2.setStockQuantity(100); em.persist(book2); OrderItem orderItem1 = OrderItem.createOrderItem(book1, 10000, 1); OrderItem orderItem2 = OrderItem.createOrderItem(book2, 20000, 1); Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); Order order = Order.createOrder(member, delivery, orderItem1, orderItem2); em.persist(order); } } }
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
재질문 드립니다 죄송합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. EntityA 1:N EntityBEntityB 1:N EntityC이런식으로 있을 때 ,EntityA 가 EntityB를 @oneToMany로 가지고있고,EntityB 가 EntityC를 @oneToMany로 가지고 있습니다. 배치사이즈 옵션을 넣고select a from EntityA a 했을때 , EntityA의 갯수만큼 EntityB에 in절로 EntityA의 키값을 넣어서 @oneToMany를 한번에 끌고왔다고 했을 때 ,EntityB안에있는 EntityC를 또 EntityB의 갯수만큼 EntityC에 in절로 EntityB의 키값을 넣어서 한번에 끌고 올 수 있는 방법이 있는지 궁금했습니다. 다중 페치조인 안되는걸 알지만 예를 들어서 이런걸 원한다고 생각하시면 될 것 같습니다select a from EntityA a join fetch EnitityB(List) b join fetch b.EntityC(List)이런식으로 컬럼 갯수가 일대다 일대다로 기하급수적으로 증가하는 경우인데배치사이즈를 사용하여 select a from EntityA a 를 했을 땐 a.EntityB 에 접근할때 당연히 in 절로 가져와주지만 EntityB의 일대다인 EntityC 를 조회 할 땐 N+1이 다시 터집니다엮여있는 모든 연관관계들을 IN절로 태우고 싶은데 방법이 없을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
depth가 2단계인 상속관계는 어떻게 설계를 해야 할까요?
depth가 2단계의 상속관계를 셋팅하는 경우 id는 최상위 엔티티의 id를 모두 공유하는 방식으로 설계를 해야 할까요?예를 들어 A가 최상위 A를 상속하는 AA, BB 그리고 다시 AA를 상속하는 AAA, BBB. CCC가 있다면 AAA를 만드는 경우 A의 id를 AA, AAA모두가 공유하는 방식이어야 하는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 데이터베이스 테이블 생성이 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]2023-09-06T15:55:42.478+09:00 INFO 7976 --- [ restartedMain] jpabooks.jpashop.JpashopApplication : Starting JpashopApplication using Java 17.0.7 with PID 7976 (D:\SelfStudySpring\jpashop\out\production\classes started by sjj in D:\SelfStudySpring\jpashop)2023-09-06T15:55:42.483+09:00 INFO 7976 --- [ restartedMain] jpabooks.jpashop.JpashopApplication : No active profile set, falling back to 1 default profile: "default"2023-09-06T15:55:42.569+09:00 INFO 7976 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable2023-09-06T15:55:42.570+09:00 INFO 7976 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'2023-09-06T15:55:43.452+09:00 INFO 7976 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2023-09-06T15:55:43.482+09:00 INFO 7976 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 20 ms. Found 0 JPA repository interfaces.2023-09-06T15:55:44.366+09:00 INFO 7976 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8086 (http)2023-09-06T15:55:44.380+09:00 INFO 7976 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]2023-09-06T15:55:44.380+09:00 INFO 7976 --- [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.12]2023-09-06T15:55:44.496+09:00 INFO 7976 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2023-09-06T15:55:44.498+09:00 INFO 7976 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1926 ms2023-09-06T15:55:44.655+09:00 INFO 7976 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2023-09-06T15:55:44.856+09:00 INFO 7976 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b user=SA2023-09-06T15:55:44.858+09:00 INFO 7976 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2023-09-06T15:55:44.873+09:00 INFO 7976 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b'2023-09-06T15:55:45.058+09:00 INFO 7976 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2023-09-06T15:55:45.138+09:00 INFO 7976 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.2.7.Final2023-09-06T15:55:45.141+09:00 INFO 7976 --- [ restartedMain] org.hibernate.cfg.Environment : HHH000406: Using bytecode reflection optimizer2023-09-06T15:55:45.313+09:00 INFO 7976 --- [ restartedMain] o.h.b.i.BytecodeProviderInitiator : HHH000021: Bytecode provider name : bytebuddy2023-09-06T15:55:45.520+09:00 INFO 7976 --- [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer2023-09-06T15:55:45.966+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983345966 | took 9ms | statement | connection 2| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504bselect * from INFORMATION_SCHEMA.SEQUENCESselect * from INFORMATION_SCHEMA.SEQUENCES;2023-09-06T15:55:45.983+09:00 INFO 7976 --- [ restartedMain] o.h.b.i.BytecodeProviderInitiator : HHH000021: Bytecode provider name : bytebuddy2023-09-06T15:55:46.832+09:00 INFO 7976 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]2023-09-06T15:55:46.853+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop table if exists category cascade 2023-09-06T15:55:46.854+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346854 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop table if exists category cascade drop table if exists category cascade ;2023-09-06T15:55:46.855+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop table if exists category_item cascade 2023-09-06T15:55:46.855+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346855 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop table if exists category_item cascade drop table if exists category_item cascade ;2023-09-06T15:55:46.855+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop table if exists delivery cascade 2023-09-06T15:55:46.855+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346855 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop table if exists delivery cascade drop table if exists delivery cascade ;2023-09-06T15:55:46.855+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop table if exists item cascade 2023-09-06T15:55:46.855+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346855 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop table if exists item cascade drop table if exists item cascade ;2023-09-06T15:55:46.855+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop table if exists member cascade 2023-09-06T15:55:46.855+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346855 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop table if exists member cascade drop table if exists member cascade ;2023-09-06T15:55:46.856+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop table if exists order_item cascade 2023-09-06T15:55:46.856+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346856 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop table if exists order_item cascade drop table if exists order_item cascade ;2023-09-06T15:55:46.856+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop table if exists orders cascade 2023-09-06T15:55:46.856+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346856 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop table if exists orders cascade drop table if exists orders cascade ;2023-09-06T15:55:46.856+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop sequence if exists category_seq2023-09-06T15:55:46.857+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346857 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop sequence if exists category_seq drop sequence if exists category_seq;2023-09-06T15:55:46.857+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop sequence if exists delivery_seq2023-09-06T15:55:46.857+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346857 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop sequence if exists delivery_seq drop sequence if exists delivery_seq;2023-09-06T15:55:46.857+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop sequence if exists item_seq2023-09-06T15:55:46.857+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346857 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop sequence if exists item_seq drop sequence if exists item_seq;2023-09-06T15:55:46.858+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop sequence if exists member_seq2023-09-06T15:55:46.858+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346858 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop sequence if exists member_seq drop sequence if exists member_seq;2023-09-06T15:55:46.858+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop sequence if exists order_item_seq2023-09-06T15:55:46.858+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346858 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop sequence if exists order_item_seq drop sequence if exists order_item_seq;2023-09-06T15:55:46.858+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : drop sequence if exists orders_seq2023-09-06T15:55:46.858+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346858 | took 0ms | statement | connection 3| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b drop sequence if exists orders_seq drop sequence if exists orders_seq;2023-09-06T15:55:46.863+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create sequence category_seq start with 1 increment by 502023-09-06T15:55:46.865+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346865 | took 1ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create sequence category_seq start with 1 increment by 50 create sequence category_seq start with 1 increment by 50;2023-09-06T15:55:46.865+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create sequence delivery_seq start with 1 increment by 502023-09-06T15:55:46.865+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346865 | took 0ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create sequence delivery_seq start with 1 increment by 50 create sequence delivery_seq start with 1 increment by 50;2023-09-06T15:55:46.865+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create sequence item_seq start with 1 increment by 502023-09-06T15:55:46.866+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346866 | took 0ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create sequence item_seq start with 1 increment by 50 create sequence item_seq start with 1 increment by 50;2023-09-06T15:55:46.866+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create sequence member_seq start with 1 increment by 502023-09-06T15:55:46.866+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346866 | took 0ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create sequence member_seq start with 1 increment by 50 create sequence member_seq start with 1 increment by 50;2023-09-06T15:55:46.866+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create sequence order_item_seq start with 1 increment by 502023-09-06T15:55:46.867+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346867 | took 0ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create sequence order_item_seq start with 1 increment by 50 create sequence order_item_seq start with 1 increment by 50;2023-09-06T15:55:46.867+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create sequence orders_seq start with 1 increment by 502023-09-06T15:55:46.867+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346867 | took 0ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create sequence orders_seq start with 1 increment by 50 create sequence orders_seq start with 1 increment by 50;2023-09-06T15:55:46.869+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create table category ( category_id bigint not null, parent_id bigint, name varchar(255), primary key (category_id) )2023-09-06T15:55:46.873+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346873 | took 3ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create table category ( category_id bigint not null, parent_id bigint, name varchar(255), primary key (category_id) ) create table category ( category_id bigint not null, parent_id bigint, name varchar(255), primary key (category_id) );2023-09-06T15:55:46.874+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create table category_item ( category_id bigint not null, item_id bigint not null )2023-09-06T15:55:46.874+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346874 | took 0ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create table category_item ( category_id bigint not null, item_id bigint not null ) create table category_item ( category_id bigint not null, item_id bigint not null );2023-09-06T15:55:46.874+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create table delivery ( delivery_id bigint not null, city varchar(255), status varchar(255) check (status in ('READY','COMP')), street varchar(255), zipcode varchar(255), primary key (delivery_id) )2023-09-06T15:55:46.876+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346876 | took 1ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create table delivery ( delivery_id bigint not null, city varchar(255), status varchar(255) check (status in ('READY','COMP')), street varchar(255), zipcode varchar(255), primary key (delivery_id) ) create table delivery ( delivery_id bigint not null, city varchar(255), status varchar(255) check (status in ('READY','COMP')), street varchar(255), zipcode varchar(255), primary key (delivery_id) );2023-09-06T15:55:46.877+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create table item ( price integer not null, stock_quantity integer not null, item_id bigint not null, dtype varchar(31) not null, actor varchar(255), artist varchar(255), author varchar(255), director varchar(255), etc varchar(255), isbn varchar(255), name varchar(255), primary key (item_id) )2023-09-06T15:55:46.878+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346878 | took 0ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create table item ( price integer not null, stock_quantity integer not null, item_id bigint not null, dtype varchar(31) not null, actor varchar(255), artist varchar(255), author varchar(255), director varchar(255), etc varchar(255), isbn varchar(255), name varchar(255), primary key (item_id) ) create table item ( price integer not null, stock_quantity integer not null, item_id bigint not null, dtype varchar(31) not null, actor varchar(255), artist varchar(255), author varchar(255), director varchar(255), etc varchar(255), isbn varchar(255), name varchar(255), primary key (item_id) );2023-09-06T15:55:46.878+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create table member ( member_id bigint not null, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (member_id) )2023-09-06T15:55:46.879+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346879 | took 0ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create table member ( member_id bigint not null, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (member_id) ) create table member ( member_id bigint not null, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (member_id) );2023-09-06T15:55:46.879+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create table order_item ( count integer not null, order_price integer not null, item_id bigint, order_id bigint, order_item_id bigint not null, primary key (order_item_id) )2023-09-06T15:55:46.880+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346880 | took 0ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create table order_item ( count integer not null, order_price integer not null, item_id bigint, order_id bigint, order_item_id bigint not null, primary key (order_item_id) ) create table order_item ( count integer not null, order_price integer not null, item_id bigint, order_id bigint, order_item_id bigint not null, primary key (order_item_id) );2023-09-06T15:55:46.882+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : create table orders ( status tinyint check (status between 0 and 1), delivery_id bigint unique, member_id bigint, order_date timestamp(6), order_id bigint not null, primary key (order_id) )2023-09-06T15:55:46.885+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346885 | took 2ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b create table orders ( status tinyint check (status between 0 and 1), delivery_id bigint unique, member_id bigint, order_date timestamp(6), order_id bigint not null, primary key (order_id) ) create table orders ( status tinyint check (status between 0 and 1), delivery_id bigint unique, member_id bigint, order_date timestamp(6), order_id bigint not null, primary key (order_id) );2023-09-06T15:55:46.886+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : alter table if exists category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category2023-09-06T15:55:46.892+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346892 | took 6ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b alter table if exists category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category alter table if exists category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category;2023-09-06T15:55:46.892+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : alter table if exists category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item2023-09-06T15:55:46.894+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346894 | took 1ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b alter table if exists category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item alter table if exists category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item;2023-09-06T15:55:46.894+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : alter table if exists category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category2023-09-06T15:55:46.895+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346895 | took 1ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b alter table if exists category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category alter table if exists category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category;2023-09-06T15:55:46.895+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : alter table if exists order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item2023-09-06T15:55:46.897+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346897 | took 1ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b alter table if exists order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item alter table if exists order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item;2023-09-06T15:55:46.897+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : alter table if exists order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders2023-09-06T15:55:46.898+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346898 | took 1ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b alter table if exists order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders alter table if exists order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders;2023-09-06T15:55:46.898+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : alter table if exists orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery2023-09-06T15:55:46.899+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346899 | took 1ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b alter table if exists orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery alter table if exists orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery;2023-09-06T15:55:46.899+09:00 DEBUG 7976 --- [ restartedMain] org.hibernate.SQL : alter table if exists orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member2023-09-06T15:55:46.901+09:00 INFO 7976 --- [ restartedMain] p6spy : #1693983346901 | took 1ms | statement | connection 4| url jdbc:h2:mem:1f4065c7-8198-4f9e-a2f8-a5551835504b alter table if exists orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member alter table if exists orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member;2023-09-06T15:55:46.903+09:00 INFO 7976 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2023-09-06T15:55:46.956+09:00 WARN 7976 --- [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning2023-09-06T15:55:47.167+09:00 INFO 7976 --- [ restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]2023-09-06T15:55:47.418+09:00 INFO 7976 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 357292023-09-06T15:55:47.469+09:00 INFO 7976 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8086 (http) with context path ''2023-09-06T15:55:47.487+09:00 INFO 7976 --- [ restartedMain] jpabooks.jpashop.JpashopApplication : Started JpashopApplication in 5.642 seconds (process running for 6.434)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
확실한 답을 못얻었습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 일단 페치조인으로 둘이상의 컬렉션은 페치 조인 할 수 없다는 걸 알았습니다, 이럴땐 배치사이즈로 컬렉션들을 in 절로 끌고오면 되는것도 이해했습니다. 궁금한것은 in절로 끌고온 컬렉션들안에 또 @oneToMany로 선언된 엔티티가 존재한다면 그 컬렉션들은 @Batchsize옵션으로 in절로 끌고 올 수 가 없나요? 배치 사이즈를 줘도 컬조회할 기준 엔티티에 직접적으로 존재하지 않는 컬렉션 엔티티들은 in절로 끌고오지않고 n+1이 터지는것같습니다