묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 핵심 원리 - 기본편
어플리케이션의 구조와 스프링 컨테이너
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 전체적인 그림이 머릿속에 잘 그려지지를 않아서 질문 드립니다... 1. 예를 들어, 클라이언트가 웹에서 요청을 하면 해당 요청이 서버 컴퓨터에 있는 프로그램의 main 메서드로 전달이 되고 main 메서드에서 MemberService 빈을 불러와서 처리가 되는 것인가요? 실제로 웹 어플리케이션(?)을 운영할 때에 CoreApplication 클래스의 main 메소드에서 AnnotationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig); 같은 코드를 적고 이 때 생성된 스프링 컨테이너 ac를 이용해서 요청이 들어올 때마다 MemberService 빈을 꺼내오는 건가요? 아니면 이런 코드가 필요없이 스프링에서 알아서 컨테이너를 만들고 컴포넌트 스캔을 해주는 건가요? 만약 그렇다면 이렇게 스프링 자체적으로 만든 컨테이너에는 어떻게 접근을 할 수 있나요? 2. 테스트 함수 내부에서 빈을 꺼내서 사용하는 일련의 코드들이 테스트가 아닌 실제 코드에서는 메인 메서드에서 구현되는 것인지 각 서비스 객체에 구현되는 것인지를 잘 모르겠습니다. 예를 들어, test.hello.core.autowired.AllBeansTest 에서 고객이 할인 정책을 선택하게끔 하는 예시는 실제로는 DiscountService 객체 내부에 메소드를 만들어서 처리하는 상황인 건가요? 3. 스프링 컨테이너에 직접 접근하고 getBean을 통해 빈을 꺼내오는 건 테스트 상황에서만 필요한 작업인가요? 프로토타입 빈을 받아오거나 하는 경우를 제외하면 서비스 객체나 리포지토리 객체 등에서 스프링 컨테이너에 접근할 일은 없는 건가요? 4. 실제 개발을 하면서 https://www.inflearn.com/questions/331154 이 질문에서와 같이 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); AnnotationConfigApplicationContext ac2 = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); 와 같은 코드를 짜서 컨테이너가 2개 생성될 일은 없는 건가요? 교재에 있는 그림들을 보면 여러 클라이언트들이 하나의 컨테이너로부터 빈을 받는데 이 컨테이너는 스프링이 자체적으로 관리하는 컨테이너가 맞나요? 추가 질문. 지금처럼 전체적인 그림이 잘 안잡힌다면 이 상태로 mvc 강의를 듣는게 나을까요? 아니면 확실하게 모든 걸 이해하고 가는게 좋을까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강사님께서 사용하시는 ERD 그리기 툴이 있을까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 일부 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 스프링 부트와 JPA 활용 강의를 듣고 토이프로젝트를 진행하려고 하는데, entity relation diagram을 간단하게 그릴 툴이 뭐가 있을까 싶어서 질문 남깁니다. Draw.io나 erdcloud 등의 사이트를 봤지만 초심자가 무턱대고 접하기엔 생각보다 벽이 있어서, 강사님께서 직접 사용하시는 툴은 어떤 것인지 궁금해 질문합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
view 환결설정강의 addAttribute오류
계속 오류가 납니다 뎃글에 사진 첨부하겠습니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
No value present 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 회원가입() 실행시 db에 값은 들어가는데 콘솔에 java.util.NoSuchElementException: No value present 오류 뜨는데 왜 이런 건가요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Mapper로 Repository를 대체?
제가 예전 회사에서 MyBatis를 쓸 때, 어디선가 그런 예제를 봐서 썼던 기억이 있는데, Mapper를 바로 서비스 계층에서 주입받아서 Repository처럼 썼었거든요. 이렇게 했을 경우의 문제점은 뭐였을까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
SpringDataJpaItemRepository 질문 드립니다
의존성 주입 최상단에 있는 SpringDataJpaConfig 파일에서 주입받는 SpringDataJpaItemRepository는 어디서 받는 것인지 모르겠습니다. 스캔 베이스 패키지를 web으로 한정지었기 때문에 SpringDataJpaItemRepository 인터페이스에 @Repository를 달아봤자 어차피 스캔도 안 되고, Config 파일에서도 단순히 주입받아서 사용해서... 어디서 주입되는지 잘 몰라서 아래처럼 생성자에서 로그를 찍어봤습니다. private final SpringDataJpaItemRepository repository;public SpringDataJpaConfig(SpringDataJpaItemRepository repository) { this.repository = repository; System.out.println(repository.getClass());} class jdk.proxy2.$Proxy95 이게 스프링 데이터jpa의 부가기능으로 스프링이 jdk 인터페이스 프록시 객체로 만들어주는 것으로 보이는데요. 질문 1. SpringDataJpaItemRepository가 JpaRepository<T, ID>를 상속받는데, 개인적인 생각으로는 의존성 주입 과정에서 JpaRepository<T, ID> 인터페이스를 상속받는 타입을 감지하는 순간(스프링 기초 수업을 안 들어서 정확히 어느 과정인지는 잘 모르겠습니다ㅠ) 해당 타입으로 빈을 만들어버리는 것 같은데 대략적인 과정이 이게 맞는지 궁금합니다. 질문 2. 위 과정이 맞다면, JpaItemRepositoryV2 같은 중간 계층 클래스를 두지 않고 직접적으로 SpringDataJpaItemRepository를 레포지토리로 사용하려고 할 때는, @Repository 를 붙이지 않아도 서비스 계층에서 직접 주입받아서 사용하는 것도 가능한가요? 직접 돌려보려고 했는데 이거는 하면 코드 구조를 서비스, 레포지토리 전부 갈아치워야 할 것 같아서... 일단 질문 올린 김에 같이 질문드립니다
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
스프링 빈의 이벤트 라이프 사이클 관련 질문
안녕하세요 영한님 아래와 같은 사항이 궁금하여 여쭈어 봅니다. #. 질문내용 * 스프링 입문 과정때 빈 라이프 사이클 관련한 부분이 아래와 같다고 배웠습니다. 1. 스프링 컨테이너 생성 2. 스프링 빈 생성 3. 의존관계주입 4. 초기화 콜백사용 @PostConstruct 5. 빈 사용 6. 소멸전 콜백 @PreDestro 고급편 빈 후처리기를 통한 AOP 프록시 SetUp의 경우라면 빈생성 후 -> 빈 후처리기 동작 -> 자동 AOP 빈 후처리기를 통한 프록시 객체 스프링 컨테이너에 주입 위와 같이 동작한다면 1 ~ 2번 사이에서 동작하게 될 것 같다고 생각했습니다. 헌데, @Transactionsal 테스트를 해보니 @PostConstruct 초기화 콜백이 먼저 호출되고 이후에 AOP 주입이 이뤄지는 듯 보입니다. 이에 질문하고 싶은 사항은 아래와 같습니다. #. 질문사항 1. 빈 후처리기는 1 ~ 6 과정 중에 어디 쯤에서 동작을 하게 되는 걸까요? 2. 추가로 업무 개발을 진행하다보니 (설정파일을 객체에 주입해야 하는 상황) @Value를 사용하게 되는 경우가 있었는데 @PostConstruct 내에서는 주입이 안된 상태로 확인하였습니다. application.yml 내에 property 주입이 가능한 어노테이션으로 알고있는 @Value의 경우에는언제 주입이 일어나게 되는걸까요? 항상 좋은 강의 감사드립니다.
-
해결됨스프링 핵심 원리 - 기본편
Lombok과 Qualifier
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] <의존관계 자동 주입> 섹션의 <애노테이션 직접 만들기> 강의를 듣고 궁금한 부분이 생겨서 질문 드립니다. public OrderServiceImpl(MemberRepository memberRepository /*, @Qualifier("mainDiscountPolicy")*/ , @MainDiscountPolicy DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy;} 생성자 주입을 할 때 RateDiscountPolicy 클래스와 discountPolicy 파라미터 앞에 @MainDiscountPolicy를 붙여주는 방식으로 discountPolicy 파라미터에 주입될 객체를 지정해줄 수 있다는 것은 이해를 했습니다. 그런데 만약 Lombok을 사용한다면 생성자를 명시할 수가 없기 때문에 discountPolicy 파라미터 앞에 @MainDiscountPolicy를 붙여줄 수가 없게됩니다. 그러면 Lombok과 Qualifier를 같이 사용할 방법은 따로 없는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
intellij 의 thymeleaf 인식오류 인가요?
일단 상품등록하는데 문제는 없습니다. 위와 연결된 Controller에 매핑과 BookForm 설정 똑같이 했는데 강의에 영한님이 한것처럼 html에서 th:object="${form}" 나 th:field="*{name}" 을 command+click 으로 연결된곳으로 갈수도 없고 Cannot resolve 'form' 오류 뜨면서 빨간줄 그어지는데 해결할수 있는 방법있을까요? 저도 그 편한 기능 쓰고 싶습니다 진짜루 ..ㅠㅠ 인텔리제이는 IntelliJ IDEA 2022.1.2 (Ultimate Edition) 쓰고 있습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
"/error-page/**" 자세한 설명...
excludePathPatterns("/error-page/**") 자세한 뜻을 잘 모르겠습니다.. 결국 /error-page/** 해주면 '제외하기 쉽게 되어 있기 때문에, 이러한 설정을 사용해서 오류 페이지 경로를 excludePathPatterns 를 사용해서 빼주면 된다.' 라고 알고 있습니다. 그리고 /error-page/** 작성하여 실행 시키면 REQUEST가 두번 출력되지 않는 다는 것과 postHandle() 메서드가 출력되지 않는 다는 것만 알고 있습니다. 반대로 /error-page/** 빼고 실행 한다면 REQUEST가 두번 출력되고, postHandle() 가 호출 된다는 것을 알고는 있는데,, 왜 그렇게 동작하는지 자세히 모르겠습니다. 뭔가,, 답만 알고 풀이는 모르고 있단 생각이 듭니다.. 둘다 똑같은거 같은데, 차이가 뭔지... 하는 마음입니다. 제가 이해하기론 /error-page/** 는 error-page 밑에 있는 모든 파일을 해당한다고 이해하고 있는데, 그렇다면 templates 밑에 있는 /error-page/404.html 와 /error-page/500.html 이 제외 되어 출력 되면 안되는 것이 아닌가 싶습니다. 그리고 둘다 컨트롤러를 통해 잘 동작하는거 같습니다.. 그리고, WAS까지 갔다 두번째 필터에서 제외 된다는 것이 /error-page/** 이렇게 설정하여, 어떻게 필터를 제외한다는 것인지도 모르겠습니다. /error-page/** 설정 함으로써 제외 된다.. 무슨 말인지 잘 모르겠습니다 ...
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
인텔리제이 타임리프 글자 색 설정 방법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 인텔리제이 얼티메이트 버전 사용중입니다. 선생님 강의대로 진행중인데 타임리프 문법 작성시 글자 색이 바뀌지 않습니다. 전부 초록색으로 나오다보니 괄호 구분이 너무 힘드네요 혹시 설정할 수 있는 방법이 있을까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertThrows 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 59줄에 assertThrows에 오류가 나는거 일까요?ㅜㅜ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
WebConfig에서 Autowired로 myHandlerExceptinoResolver를 주입받을 경우
안녕하세요! resolver 등록관련해서 질문이 있습니다. WebConfig에서 ExceptionResolver를 등록할 때 new로 MyHandlerExceptionResolver를 직접 생성하지 않고, MyHandlerExceptionResolver에 @Component 어노테이션을 사용하고 WebConfig에서 @Autowired로 주입받아서 resolver 등록한 후 /api/member/ex 로 요청을 해봤는데요, 이 경우 resolver가 2회 호출되는 것으로 확인했습니다. 아무리 생각해봐도 이유를 잘 모르겠는데 혹시 어떤 이유로 2회 호출되는 것일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
단축키문의
안녕하세요 강사님! 동영상 43초에 memberService.findMembers()만 쳤을때, members라는 List<Member>타입의 객체 자동생성 단축키가 mac과 윈도우기준 각각 어떻게 되는지 알 수 있을가요? 이전 강의에 나온거 같은데 잘 안찾아져서 문의드려봅니다. 구글링해도 키워드가 안맞아서 그런지 잘안나오네요 ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품등록후 에러
상품 등록 후 DB에서 조회는 됩니다만 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Sun Jun 05 12:22:37 KST 2022 There was an unexpected error (type=Not Found, status=404). No message available 이 페이지가 뜨네요. 관련 코드 및 콘솔 창 같이 올리겠습니다. package jpabook.jpashop.controller;import lombok.Getter;import lombok.Setter;@Getter @Setterpublic class BookForm { private Long id; private String name; private int price; private int stockQuantity; private String author; private String isbn;} package jpabook.jpashop.controller;import jpabook.jpashop.domain.item.Book;import jpabook.jpashop.service.ItemService;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;@Controller@RequiredArgsConstructorpublic class ItemController { private final ItemService itemService; @GetMapping("/items/new") public String createForm(Model model) { model.addAttribute("form", new BookForm()); return "items/createItemForm"; } @PostMapping("/items/new") public String create(BookForm form) { Book book = new Book(); book.setName(form.getName()); book.setPrice(form.getPrice()); book.setStockQuantity(form.getStockQuantity()); book.setAuthor(form.getAuthor()); book.setIsbn(form.getIsbn()); itemService.saveItem(book); return "redirect:/items"; }} <!DOCTYPE HTML><html xmlns:th="http://www.thymeleaf.org"><head th:replace="fragments/header :: header" /><body><div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader"/> <form th:action="@{/items/new}" th:object="${form}" method="post"> <div class="form-group"> <label th:for="name">상품명</label> <input type="text" th:field="*{name}" class="form-control" placeholder="이름을 입력하세요"> </div> <div class="form-group"> <label th:for="price">가격</label> <input type="number" th:field="*{price}" class="form-control" placeholder="가격을 입력하세요"> </div> <div class="form-group"> <label th:for="stockQuantity">수량</label> <input type="number" th:field="*{stockQuantity}" class="form-control" placeholder="수량을 입력하세요"> </div> <div class="form-group"> <label th:for="author">저자</label> <input type="text" th:field="*{author}" class="form-control" placeholder="저자를 입력하세요"> </div> <div class="form-group"> <label th:for="isbn">ISBN</label> <input type="text" th:field="*{isbn}" class="form-control" placeholder="ISBN을 입력하세요"> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <br/> <div th:replace="fragments/footer :: footer" /></div> <!-- /container --></body></html> "C:\Program Files\Java\jdk-11.0.14\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1\lib\idea_rt.jar=62986:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1\bin" -Dfile.encoding=UTF-8 -classpath C:\java\study\jpashop\out\production\classes;C:\java\study\jpashop\out\production\resources;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.projectlombok\lombok\1.18.24\13a394eed5c4f9efb2a6d956e2086f1d81e857d9\lombok-1.18.24.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-data-jpa\2.7.0\773d8c4fbe92493655f4c7db3a2d95388b8f6eb8\spring-boot-starter-data-jpa-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-thymeleaf\2.7.0\e706ed79c9b8066fd0894d44b23d9a1b00417ac7\spring-boot-starter-thymeleaf-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-validation\2.7.0\1a7d12c3b10ec1c30ca3a6eb38d550f4a3876b31\spring-boot-starter-validation-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\2.7.0\7bf2381d030023970b5375c1090545e480467aa1\spring-boot-starter-web-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-devtools\2.7.0\2a45b04877bbfe9750e4d29f6a73f125e146513d\spring-boot-devtools-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.github.gavlyukovskiy\p6spy-spring-boot-starter\1.5.6\495579c7fb01b005f19ec4d5188245c66de0937b\p6spy-spring-boot-starter-1.5.6.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-aop\2.7.0\49f204ec9672800932f8f7b344221251b1422da6\spring-boot-starter-aop-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-jdbc\2.7.0\dd69f21efd63a2a16d631210b5656dc30348451b\spring-boot-starter-jdbc-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\jakarta.transaction\jakarta.transaction-api\1.3.3\c4179d48720a1e87202115fbed6089bdc4195405\jakarta.transaction-api-1.3.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\jakarta.persistence\jakarta.persistence-api\2.2.3\8f6ea5daedc614f07a3654a455660145286f024e\jakarta.persistence-api-2.2.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.hibernate\hibernate-core\5.6.9.Final\8ec2c7b13de2fbcb19feddfb3a30932bb6a8228a\hibernate-core-5.6.9.Final.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-jpa\2.7.0\f82986cdf2beda49b0bbb28a880ca644a1eb6c42\spring-data-jpa-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aspects\5.3.20\161a2ccb1d68aed17922981909081bd6d1e46628\spring-aspects-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\2.7.0\64fd3c21486dd20df9a62566599337dae2eb62cc\spring-boot-starter-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.thymeleaf\thymeleaf-spring5\3.0.15.RELEASE\7170e1bcd1588d38c139f7048ebcc262676441c3\thymeleaf-spring5-3.0.15.RELEASE.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.thymeleaf.extras\thymeleaf-extras-java8time\3.0.4.RELEASE\36e7175ddce36c486fff4578b5af7bb32f54f5df\thymeleaf-extras-java8time-3.0.4.RELEASE.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-el\9.0.63\b595f0bdae0392c8b3c8592fea10023956a3f619\tomcat-embed-el-9.0.63.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.hibernate.validator\hibernate-validator\6.2.3.Final\ea4545d1a97b27bada5f2e3f74c6172e641ecf39\hibernate-validator-6.2.3.Final.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\2.7.0\f7120f4a6fd5dd2ca2128061e420e45ae2294943\spring-boot-starter-json-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-tomcat\2.7.0\b8e5cd8cd4bf3935a68468fe32fe2e7550f96b8a\spring-boot-starter-tomcat-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\5.3.20\8ac1b72a1f5c41fdc2cb3340cd94f795af260301\spring-webmvc-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\5.3.20\3c2fe9363760d62d5b7c9f087bb4255e3377a0b2\spring-web-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\2.7.0\483f9a66d0e8326583c5054038d0aa0a95045dc3\spring-boot-autoconfigure-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\2.7.0\df8bd106d6c6a6494b787b71d23cef6d2dc73703\spring-boot-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.github.gavlyukovskiy\datasource-decorator-spring-boot-autoconfigure\1.5.6\cac386fe9df77870133594f054ee32e5d08ab93d\datasource-decorator-spring-boot-autoconfigure-1.5.6.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\p6spy\p6spy\3.8.2\52299d9a1ec2bc2fb8b1a21cc12dfc1a7c033caf\p6spy-3.8.2.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\5.3.20\c82f17997ab18ecafa8d08ce34a7c7aa4a04ef9e\spring-aop-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.aspectj\aspectjweaver\1.9.7\158f5c255cd3e4408e795b79f7c3fbae9b53b7ca\aspectjweaver-1.9.7.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.zaxxer\HikariCP\4.0.3\107cbdf0db6780a065f895ae9d8fbf3bb0e1c21f\HikariCP-4.0.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jdbc\5.3.20\140414df1080754fcefe12921543c599e51dfbb2\spring-jdbc-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.hibernate.common\hibernate-commons-annotations\5.1.2.Final\e59ffdbc6ad09eeb33507b39ffcf287679a498c8\hibernate-commons-annotations-5.1.2.Final.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.jboss.logging\jboss-logging\3.4.3.Final\c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea\jboss-logging-3.4.3.Final.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy\1.12.10\f34127d93639fad8c6fb84b3ca30292697d6c55d\byte-buddy-1.12.10.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\antlr\antlr\2.7.7\83cd2cd674a217ade95a4bb83a8a14f351f48bd0\antlr-2.7.7.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.jboss\jandex\2.4.2.Final\1e1c385990b258ff1a24c801e84aebbacf70eb39\jandex-2.4.2.Final.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.fasterxml\classmate\1.5.1\3fe0bed568c62df5e89f4f174c101eab25345b6c\classmate-1.5.1.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\jaxb-runtime\2.3.6\1e6cd0e5d9f9919c8c8824fb4d310b09a978a60e\jaxb-runtime-2.3.6.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\5.3.20\517a42165221ea944c8b794154c10b69c0128281\spring-context-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-orm\5.3.20\4eaf36c114a3aa2d1603834cfb197b5742ccde5b\spring-orm-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-commons\2.7.0\6dc643cf1512fdc5c2d63f55c83080b60b629d10\spring-data-commons-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-tx\5.3.20\9a4ec2249dc3523ac70e0710a64288c14fc3ff78\spring-tx-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\5.3.20\ab88bd9e3a8307f5c0516c15d295c88ec318659\spring-beans-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\5.3.20\4b88aa3c401ede3d6c8ac78ea0c646cf326ec24b\spring-core-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\1.7.36\6c62681a2f655b49963a5983b8b0950a6120ae14\slf4j-api-1.7.36.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\2.7.0\5ff2a55d345ad824f39d55eaa32203865a92b30f\spring-boot-starter-logging-2.7.0.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\1.3.5\59eb84ee0d616332ff44aba065f3888cf002cd2d\jakarta.annotation-api-1.3.5.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.30\8fde7fe2586328ac3c68db92045e1c8759125000\snakeyaml-1.30.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.thymeleaf\thymeleaf\3.0.15.RELEASE\13e3296a03d8a597b734d832ed8656139bf9cdd8\thymeleaf-3.0.15.RELEASE.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\jakarta.validation\jakarta.validation-api\2.0.2\5eacc6522521f7eacb081f95cee1e231648461e7\jakarta.validation-api-2.0.2.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.13.3\ad2f4c61aeb9e2a8bb5e4a3ed782cfddec52d972\jackson-datatype-jsr310-2.13.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.13.3\f71c4ecc1a403787c963f68bc619b78ce1d2687b\jackson-module-parameter-names-2.13.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.13.3\d4884595d5aab5babdb00ddbd693b8fd36b5ec3c\jackson-datatype-jdk8-2.13.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.13.3\56deb9ea2c93a7a556b3afbedd616d342963464e\jackson-databind-2.13.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-websocket\9.0.63\c0bedf7bad4c0552e1805b2bc802604171c64146\tomcat-embed-websocket-9.0.63.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-core\9.0.63\f427a282d02439570f1e2af2c00376d4188c5291\tomcat-embed-core-9.0.63.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\5.3.20\20e179f0dfabf0a46428f22c2150c9c4850fd15d\spring-expression-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\jakarta.xml.bind\jakarta.xml.bind-api\2.3.3\48e3b9cfc10752fba3521d6511f4165bea951801\jakarta.xml.bind-api-2.3.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\txw2\2.3.6\45db7b69a8f1ec2c21eb7d4fc0ee729f53c1addc\txw2-2.3.6.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.sun.istack\istack-commons-runtime\3.0.12\cbbe1a62b0cc6c85972e99d52aaee350153dc530\istack-commons-runtime-3.0.12.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\5.3.20\35119231d09863699567ce579c21512ddcbc5407\spring-jcl-5.3.20.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.2.11\4741689214e9d1e8408b206506cbe76d1c6a7d60\logback-classic-1.2.11.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.17.2\17dd0fae2747d9a28c67bc9534108823d2376b46\log4j-to-slf4j-2.17.2.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\1.7.36\ed46d81cef9c412a88caef405b58f93a678ff2ca\jul-to-slf4j-1.7.36.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.attoparser\attoparser\2.0.5.RELEASE\a93ad36df9560de3a5312c1d14f69d938099fa64\attoparser-2.0.5.RELEASE.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.unbescape\unbescape\1.1.6.RELEASE\7b90360afb2b860e09e8347112800d12c12b2a13\unbescape-1.1.6.RELEASE.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.13.3\7198b3aac15285a49e218e08441c5f70af00fc51\jackson-annotations-2.13.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.13.3\a27014716e4421684416e5fa83d896ddb87002da\jackson-core-2.13.3.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.2.11\a01230df5ca5c34540cdaa3ad5efb012f1f1f792\logback-core-1.2.11.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.17.2\f42d6afa111b4dec5d2aea0fe2197240749a4ea6\log4j-api-2.17.2.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.h2database\h2\2.1.212\f3187885395bd0c0e0e83f96641bb630f368ee2f\h2-2.1.212.jar;C:\Users\nnubb\.gradle\caches\modules-2\files-2.1\com.sun.activation\jakarta.activation\1.2.2\74548703f9851017ce2f556066659438019e7eb5\jakarta.activation-1.2.2.jar jpabook.jpashop.JpashopApplication data = hello 12:22:06.080 [Thread-0] DEBUG org.springframework.boot.devtools.restart.classloader.RestartClassLoader - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@3b80d04b data = hello . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.0) 2022-06-05 12:22:06.338 INFO 12448 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Starting JpashopApplication using Java 11.0.14 on DESKTOP-9G5TSL6 with PID 12448 (C:\java\study\jpashop\out\production\classes started by butahana in C:\java\study\jpashop) 2022-06-05 12:22:06.338 INFO 12448 --- [ restartedMain] jpabook.jpashop.JpashopApplication : No active profile set, falling back to 1 default profile: "default" 2022-06-05 12:22:06.373 INFO 12448 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2022-06-05 12:22:06.373 INFO 12448 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2022-06-05 12:22:06.728 INFO 12448 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2022-06-05 12:22:06.736 INFO 12448 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 4 ms. Found 0 JPA repository interfaces. 2022-06-05 12:22:07.045 INFO 12448 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2022-06-05 12:22:07.051 INFO 12448 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2022-06-05 12:22:07.051 INFO 12448 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.63] 2022-06-05 12:22:07.096 INFO 12448 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2022-06-05 12:22:07.097 INFO 12448 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 723 ms 2022-06-05 12:22:07.150 INFO 12448 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2022-06-05 12:22:07.183 INFO 12448 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2022-06-05 12:22:07.190 INFO 12448 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:tcp://localhost/~/jpashop' 2022-06-05 12:22:07.250 INFO 12448 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2022-06-05 12:22:07.273 INFO 12448 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.9.Final 2022-06-05 12:22:07.346 INFO 12448 --- [ restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2022-06-05 12:22:07.358 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -> org.hibernate.type.BooleanType@6dd9cd6c 2022-06-05 12:22:07.358 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -> org.hibernate.type.BooleanType@6dd9cd6c 2022-06-05 12:22:07.358 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@6dd9cd6c 2022-06-05 12:22:07.359 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@371f330a 2022-06-05 12:22:07.359 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration true_false -> org.hibernate.type.TrueFalseType@6eaa4e5 2022-06-05 12:22:07.359 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration yes_no -> org.hibernate.type.YesNoType@7702bc84 2022-06-05 12:22:07.360 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -> org.hibernate.type.ByteType@759f2816 2022-06-05 12:22:07.360 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -> org.hibernate.type.ByteType@759f2816 2022-06-05 12:22:07.360 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@759f2816 2022-06-05 12:22:07.360 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration character -> org.hibernate.type.CharacterType@4affc1a4 2022-06-05 12:22:07.360 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration char -> org.hibernate.type.CharacterType@4affc1a4 2022-06-05 12:22:07.360 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@4affc1a4 2022-06-05 12:22:07.361 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration short -> org.hibernate.type.ShortType@6ae4343a 2022-06-05 12:22:07.361 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration short -> org.hibernate.type.ShortType@6ae4343a 2022-06-05 12:22:07.361 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Short -> org.hibernate.type.ShortType@6ae4343a 2022-06-05 12:22:07.361 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration integer -> org.hibernate.type.IntegerType@168ad465 2022-06-05 12:22:07.361 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration int -> org.hibernate.type.IntegerType@168ad465 2022-06-05 12:22:07.361 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@168ad465 2022-06-05 12:22:07.362 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration long -> org.hibernate.type.LongType@5e26992d 2022-06-05 12:22:07.362 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration long -> org.hibernate.type.LongType@5e26992d 2022-06-05 12:22:07.362 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Long -> org.hibernate.type.LongType@5e26992d 2022-06-05 12:22:07.362 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration float -> org.hibernate.type.FloatType@65381db6 2022-06-05 12:22:07.362 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration float -> org.hibernate.type.FloatType@65381db6 2022-06-05 12:22:07.362 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Float -> org.hibernate.type.FloatType@65381db6 2022-06-05 12:22:07.363 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration double -> org.hibernate.type.DoubleType@1c86120e 2022-06-05 12:22:07.363 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration double -> org.hibernate.type.DoubleType@1c86120e 2022-06-05 12:22:07.363 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@1c86120e 2022-06-05 12:22:07.363 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@12f937f 2022-06-05 12:22:07.363 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@12f937f 2022-06-05 12:22:07.363 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration big_integer -> org.hibernate.type.BigIntegerType@62708239 2022-06-05 12:22:07.363 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@62708239 2022-06-05 12:22:07.364 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration string -> org.hibernate.type.StringType@3c459fb3 2022-06-05 12:22:07.364 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.String -> org.hibernate.type.StringType@3c459fb3 2022-06-05 12:22:07.364 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration nstring -> org.hibernate.type.StringNVarcharType@25a92983 2022-06-05 12:22:07.364 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@6dad903b 2022-06-05 12:22:07.364 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration url -> org.hibernate.type.UrlType@2fdc5c1e 2022-06-05 12:22:07.364 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.net.URL -> org.hibernate.type.UrlType@2fdc5c1e 2022-06-05 12:22:07.365 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Duration -> org.hibernate.type.DurationType@8bfbab9 2022-06-05 12:22:07.365 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Duration -> org.hibernate.type.DurationType@8bfbab9 2022-06-05 12:22:07.365 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Instant -> org.hibernate.type.InstantType@562717a 2022-06-05 12:22:07.365 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Instant -> org.hibernate.type.InstantType@562717a 2022-06-05 12:22:07.366 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@7a0e8ad2 2022-06-05 12:22:07.366 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@7a0e8ad2 2022-06-05 12:22:07.366 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDate -> org.hibernate.type.LocalDateType@cf46640 2022-06-05 12:22:07.366 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@cf46640 2022-06-05 12:22:07.367 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@69a9515a 2022-06-05 12:22:07.367 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@69a9515a 2022-06-05 12:22:07.367 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2feed6d 2022-06-05 12:22:07.367 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2feed6d 2022-06-05 12:22:07.367 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@277d9e59 2022-06-05 12:22:07.367 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@277d9e59 2022-06-05 12:22:07.368 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@179a1eb7 2022-06-05 12:22:07.368 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@179a1eb7 2022-06-05 12:22:07.369 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration date -> org.hibernate.type.DateType@20e6df3d 2022-06-05 12:22:07.369 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Date -> org.hibernate.type.DateType@20e6df3d 2022-06-05 12:22:07.369 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration time -> org.hibernate.type.TimeType@5af5e24d 2022-06-05 12:22:07.369 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Time -> org.hibernate.type.TimeType@5af5e24d 2022-06-05 12:22:07.370 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration timestamp -> org.hibernate.type.TimestampType@7f203c51 2022-06-05 12:22:07.370 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@7f203c51 2022-06-05 12:22:07.370 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Date -> org.hibernate.type.TimestampType@7f203c51 2022-06-05 12:22:07.370 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@41a0e62e 2022-06-05 12:22:07.371 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar -> org.hibernate.type.CalendarType@38bb4039 2022-06-05 12:22:07.371 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@38bb4039 2022-06-05 12:22:07.371 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@38bb4039 2022-06-05 12:22:07.371 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@26c38766 2022-06-05 12:22:07.372 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_time -> org.hibernate.type.CalendarTimeType@79eef376 2022-06-05 12:22:07.372 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration locale -> org.hibernate.type.LocaleType@55fe3864 2022-06-05 12:22:07.372 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@55fe3864 2022-06-05 12:22:07.372 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration currency -> org.hibernate.type.CurrencyType@4b13aaf3 2022-06-05 12:22:07.372 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@4b13aaf3 2022-06-05 12:22:07.372 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration timezone -> org.hibernate.type.TimeZoneType@21bbef8d 2022-06-05 12:22:07.373 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@21bbef8d 2022-06-05 12:22:07.373 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration class -> org.hibernate.type.ClassType@1095405d 2022-06-05 12:22:07.373 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Class -> org.hibernate.type.ClassType@1095405d 2022-06-05 12:22:07.373 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@79b3be9c 2022-06-05 12:22:07.373 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@79b3be9c 2022-06-05 12:22:07.373 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@6d98dae5 2022-06-05 12:22:07.374 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration binary -> org.hibernate.type.BinaryType@64f13ab4 2022-06-05 12:22:07.374 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte[] -> org.hibernate.type.BinaryType@64f13ab4 2022-06-05 12:22:07.374 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [B -> org.hibernate.type.BinaryType@64f13ab4 2022-06-05 12:22:07.374 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@3c377e38 2022-06-05 12:22:07.374 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@3c377e38 2022-06-05 12:22:07.374 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@3c377e38 2022-06-05 12:22:07.375 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration row_version -> org.hibernate.type.RowVersionType@1f31e6a8 2022-06-05 12:22:07.375 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration image -> org.hibernate.type.ImageType@69927b68 2022-06-05 12:22:07.375 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration characters -> org.hibernate.type.CharArrayType@47bf4950 2022-06-05 12:22:07.375 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration char[] -> org.hibernate.type.CharArrayType@47bf4950 2022-06-05 12:22:07.375 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [C -> org.hibernate.type.CharArrayType@47bf4950 2022-06-05 12:22:07.377 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@763f5ac 2022-06-05 12:22:07.377 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@763f5ac 2022-06-05 12:22:07.377 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@763f5ac 2022-06-05 12:22:07.377 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration text -> org.hibernate.type.TextType@3a39b025 2022-06-05 12:22:07.377 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ntext -> org.hibernate.type.NTextType@1ebe971d 2022-06-05 12:22:07.377 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration blob -> org.hibernate.type.BlobType@11b13e02 2022-06-05 12:22:07.377 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@11b13e02 2022-06-05 12:22:07.378 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@be9c589 2022-06-05 12:22:07.378 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration clob -> org.hibernate.type.ClobType@2d4eb834 2022-06-05 12:22:07.378 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@2d4eb834 2022-06-05 12:22:07.379 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration nclob -> org.hibernate.type.NClobType@27f517c3 2022-06-05 12:22:07.379 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@27f517c3 2022-06-05 12:22:07.379 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@3088d376 2022-06-05 12:22:07.379 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@1d627075 2022-06-05 12:22:07.379 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration serializable -> org.hibernate.type.SerializableType@330b8cbc 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration object -> org.hibernate.type.ObjectType@78d2224 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@78d2224 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@27babbb3 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@721cc372 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@4d7ae36a 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@455f8ba5 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@374ac79e 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@23599556 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@392243e4 2022-06-05 12:22:07.381 DEBUG 12448 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@99e5c6 2022-06-05 12:22:07.404 INFO 12448 --- [ restartedMain] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2022-06-05 12:22:07.420 DEBUG 12448 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3a67b7bd] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@377c4cba] 2022-06-05 12:22:07.573 DEBUG 12448 --- [ restartedMain] org.hibernate.type.EnumType : Using NAMED-based conversion for Enum jpabook.jpashop.domain.DeliveryStatus 2022-06-05 12:22:07.574 DEBUG 12448 --- [ restartedMain] org.hibernate.type.EnumType : Using NAMED-based conversion for Enum jpabook.jpashop.domain.OrderStatus 2022-06-05 12:22:07.574 DEBUG 12448 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3a67b7bd] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@1121f434] 2022-06-05 12:22:07.775 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : drop table if exists category CASCADE 2022-06-05 12:22:07.779 INFO 12448 --- [ restartedMain] p6spy : #1654399327779 | took 1ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists category CASCADE drop table if exists category CASCADE ; 2022-06-05 12:22:07.779 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : drop table if exists category_item CASCADE 2022-06-05 12:22:07.779 INFO 12448 --- [ restartedMain] p6spy : #1654399327779 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists category_item CASCADE drop table if exists category_item CASCADE ; 2022-06-05 12:22:07.779 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : drop table if exists delivery CASCADE 2022-06-05 12:22:07.780 INFO 12448 --- [ restartedMain] p6spy : #1654399327780 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists delivery CASCADE drop table if exists delivery CASCADE ; 2022-06-05 12:22:07.780 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : drop table if exists item CASCADE 2022-06-05 12:22:07.781 INFO 12448 --- [ restartedMain] p6spy : #1654399327781 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists item CASCADE drop table if exists item CASCADE ; 2022-06-05 12:22:07.781 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : drop table if exists member CASCADE 2022-06-05 12:22:07.781 INFO 12448 --- [ restartedMain] p6spy : #1654399327781 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists member CASCADE drop table if exists member CASCADE ; 2022-06-05 12:22:07.781 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : drop table if exists order_item CASCADE 2022-06-05 12:22:07.781 INFO 12448 --- [ restartedMain] p6spy : #1654399327781 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists order_item CASCADE drop table if exists order_item CASCADE ; 2022-06-05 12:22:07.781 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : drop table if exists orders CASCADE 2022-06-05 12:22:07.781 INFO 12448 --- [ restartedMain] p6spy : #1654399327781 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists orders CASCADE drop table if exists orders CASCADE ; 2022-06-05 12:22:07.782 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : drop sequence if exists hibernate_sequence 2022-06-05 12:22:07.782 INFO 12448 --- [ restartedMain] p6spy : #1654399327782 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop sequence if exists hibernate_sequence drop sequence if exists hibernate_sequence; 2022-06-05 12:22:07.783 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : create sequence hibernate_sequence start with 1 increment by 1 2022-06-05 12:22:07.784 INFO 12448 --- [ restartedMain] p6spy : #1654399327784 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create sequence hibernate_sequence start with 1 increment by 1 create sequence hibernate_sequence start with 1 increment by 1; 2022-06-05 12:22:07.784 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : create table category ( category_id bigint not null, name varchar(255), parent_id bigint, primary key (category_id) ) 2022-06-05 12:22:07.785 INFO 12448 --- [ restartedMain] p6spy : #1654399327785 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create table category ( category_id bigint not null, name varchar(255), parent_id bigint, primary key (category_id) ) create table category ( category_id bigint not null, name varchar(255), parent_id bigint, primary key (category_id) ); 2022-06-05 12:22:07.785 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : create table category_item ( category_id bigint not null, item_id bigint not null ) 2022-06-05 12:22:07.785 INFO 12448 --- [ restartedMain] p6spy : #1654399327785 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop 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 ); 2022-06-05 12:22:07.785 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : create table delivery ( delevery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status varchar(255), primary key (delevery_id) ) 2022-06-05 12:22:07.786 INFO 12448 --- [ restartedMain] p6spy : #1654399327786 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create table delivery ( delevery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status varchar(255), primary key (delevery_id) ) create table delivery ( delevery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status varchar(255), primary key (delevery_id) ); 2022-06-05 12:22:07.786 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : create table item ( dtype varchar(31) not null, item_id bigint not null, name varchar(255), price integer not null, stock_quantity integer not null, artist varchar(255), etc varchar(255), author varchar(255), isbn varchar(255), actor varchar(255), director varchar(255), primary key (item_id) ) 2022-06-05 12:22:07.786 INFO 12448 --- [ restartedMain] p6spy : #1654399327786 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create table item ( dtype varchar(31) not null, item_id bigint not null, name varchar(255), price integer not null, stock_quantity integer not null, artist varchar(255), etc varchar(255), author varchar(255), isbn varchar(255), actor varchar(255), director varchar(255), primary key (item_id) ) create table item ( dtype varchar(31) not null, item_id bigint not null, name varchar(255), price integer not null, stock_quantity integer not null, artist varchar(255), etc varchar(255), author varchar(255), isbn varchar(255), actor varchar(255), director varchar(255), primary key (item_id) ); 2022-06-05 12:22:07.786 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : create table member ( member_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), name varchar(255), primary key (member_id) ) 2022-06-05 12:22:07.786 INFO 12448 --- [ restartedMain] p6spy : #1654399327786 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create table member ( member_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), name varchar(255), primary key (member_id) ) create table member ( member_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), name varchar(255), primary key (member_id) ); 2022-06-05 12:22:07.786 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : create table order_item ( order_item_id bigint not null, count integer not null, order_price integer not null, item_id bigint, order_id bigint, primary key (order_item_id) ) 2022-06-05 12:22:07.786 INFO 12448 --- [ restartedMain] p6spy : #1654399327786 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create table order_item ( order_item_id bigint not null, count integer not null, order_price integer not null, item_id bigint, order_id bigint, primary key (order_item_id) ) create table order_item ( order_item_id bigint not null, count integer not null, order_price integer not null, item_id bigint, order_id bigint, primary key (order_item_id) ); 2022-06-05 12:22:07.786 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : create table orders ( order_id bigint not null, order_date timestamp, status varchar(255), delivery_id bigint, member_id bigint, primary key (order_id) ) 2022-06-05 12:22:07.787 INFO 12448 --- [ restartedMain] p6spy : #1654399327787 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create table orders ( order_id bigint not null, order_date timestamp, status varchar(255), delivery_id bigint, member_id bigint, primary key (order_id) ) create table orders ( order_id bigint not null, order_date timestamp, status varchar(255), delivery_id bigint, member_id bigint, primary key (order_id) ); 2022-06-05 12:22:07.787 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : alter table category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category 2022-06-05 12:22:07.788 INFO 12448 --- [ restartedMain] p6spy : #1654399327788 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop alter table category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category alter table category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category; 2022-06-05 12:22:07.788 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : alter table category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item 2022-06-05 12:22:07.788 INFO 12448 --- [ restartedMain] p6spy : #1654399327788 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop alter table category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item alter table category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item; 2022-06-05 12:22:07.788 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : alter table category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category 2022-06-05 12:22:07.789 INFO 12448 --- [ restartedMain] p6spy : #1654399327789 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop alter table category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category alter table category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category; 2022-06-05 12:22:07.789 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : alter table order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item 2022-06-05 12:22:07.789 INFO 12448 --- [ restartedMain] p6spy : #1654399327789 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop alter table order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item alter table order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item; 2022-06-05 12:22:07.790 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : alter table order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders 2022-06-05 12:22:07.790 INFO 12448 --- [ restartedMain] p6spy : #1654399327790 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop alter table order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders alter table order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders; 2022-06-05 12:22:07.790 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : alter table orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery 2022-06-05 12:22:07.791 INFO 12448 --- [ restartedMain] p6spy : #1654399327791 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop alter table orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery alter table orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery; 2022-06-05 12:22:07.791 DEBUG 12448 --- [ restartedMain] org.hibernate.SQL : alter table orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member 2022-06-05 12:22:07.792 INFO 12448 --- [ restartedMain] p6spy : #1654399327792 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop alter table orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member alter table orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member; 2022-06-05 12:22:07.793 INFO 12448 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2022-06-05 12:22:07.797 TRACE 12448 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@1121f434] for TypeConfiguration 2022-06-05 12:22:07.798 INFO 12448 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2022-06-05 12:22:07.870 WARN 12448 --- [ 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 warning 2022-06-05 12:22:07.950 INFO 12448 --- [ restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2022-06-05 12:22:08.059 INFO 12448 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2022-06-05 12:22:08.090 INFO 12448 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2022-06-05 12:22:08.097 INFO 12448 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Started JpashopApplication in 2.008 seconds (JVM running for 2.535) 2022-06-05 12:22:20.988 INFO 12448 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2022-06-05 12:22:20.988 INFO 12448 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2022-06-05 12:22:20.990 INFO 12448 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms 2022-06-05 12:22:21.083 INFO 12448 --- [nio-8080-exec-1] j.jpashop.controller.HomeController : home controller 2022-06-05 12:22:21.764 INFO 12448 --- [nio-8080-exec-2] j.jpashop.controller.HomeController : home controller 2022-06-05 12:22:22.612 INFO 12448 --- [nio-8080-exec-5] j.jpashop.controller.HomeController : home controller 2022-06-05 12:22:32.624 DEBUG 12448 --- [nio-8080-exec-3] org.hibernate.SQL : call next value for hibernate_sequence 2022-06-05 12:22:32.632 INFO 12448 --- [nio-8080-exec-3] p6spy : #1654399352632 | took 4ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashop call next value for hibernate_sequence call next value for hibernate_sequence; 2022-06-05 12:22:32.657 DEBUG 12448 --- [nio-8080-exec-3] org.hibernate.SQL : insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?) 2022-06-05 12:22:32.659 TRACE 12448 --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [JPA] 2022-06-05 12:22:32.659 TRACE 12448 --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [1] 2022-06-05 12:22:32.660 TRACE 12448 --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [1] 2022-06-05 12:22:32.660 TRACE 12448 --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [qweqwe] 2022-06-05 12:22:32.660 TRACE 12448 --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [122] 2022-06-05 12:22:32.660 TRACE 12448 --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [1] 2022-06-05 12:22:32.661 INFO 12448 --- [nio-8080-exec-3] p6spy : #1654399352661 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashop insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?) insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values ('JPA', 1, 1, 'qweqwe', '122', 'B', 1); 2022-06-05 12:22:32.663 INFO 12448 --- [nio-8080-exec-3] p6spy : #1654399352663 | took 0ms | commit | connection 4| url jdbc:h2:tcp://localhost/~/jpashop ; 2022-06-05 12:22:37.202 DEBUG 12448 --- [nio-8080-exec-7] org.hibernate.SQL : call next value for hibernate_sequence 2022-06-05 12:22:37.202 INFO 12448 --- [nio-8080-exec-7] p6spy : #1654399357202 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashop call next value for hibernate_sequence call next value for hibernate_sequence; 2022-06-05 12:22:37.203 DEBUG 12448 --- [nio-8080-exec-7] org.hibernate.SQL : insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?) 2022-06-05 12:22:37.204 TRACE 12448 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [JPA] 2022-06-05 12:22:37.204 TRACE 12448 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [1] 2022-06-05 12:22:37.204 TRACE 12448 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [1] 2022-06-05 12:22:37.204 TRACE 12448 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [qweqwe] 2022-06-05 12:22:37.204 TRACE 12448 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [122] 2022-06-05 12:22:37.204 TRACE 12448 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [2] 2022-06-05 12:22:37.204 INFO 12448 --- [nio-8080-exec-7] p6spy : #1654399357204 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashop insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?) insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values ('JPA', 1, 1, 'qweqwe', '122', 'B', 2); 2022-06-05 12:22:37.204 INFO 12448 --- [nio-8080-exec-7] p6spy : #1654399357204 | took 0ms | commit | connection 5| url jdbc:h2:tcp://localhost/~/jpashop ;
-
미해결스프링 핵심 원리 - 고급편
회원 유효성 검사에 AOP 를 적용해도 될까요?
안녕하세요 강사님 AOP 를 배우니, 개인 프로젝트에 적용하고 싶은 생각이 들어 질문을 드립니다. 현재 게시판 서비스를 개발중입니다. 이 때 탈퇴한 회원의 글이나, 숨김 처리된 글은 화면단에서 보이지 않도록, 게시글 조회 API 마다 "필터 로직"을 중복하여 사용하고 있습니다. 그렇다 보니, api 마다 중복되는 필터 로직을 AOP 로 대체할 수 있지 않을까 생각이 들었습니다. 학습 자료를 보니 "오류 검사 및 처리, 동기화, 성능 최적화, 모니터링/로깅" 에 AOP 가 사용된다고 적혀있는데, 제가 구현하고자하는 필터링 로직도 AOP 를 적용하는 것이 적절한지 궁금하여 질문 드립니다 감사합니다 ! 회원의 유효성 검사라는 횡단 관심사의 문제는 충족하지만, 이를 DB 단이 아닌 AOP 를 적용하여 해결하는 것이 적절한 방법인지에 대한 궁금증이라 생각해주시면 감사하겠습니다 :))
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인텔리제이말고 이클립스 사용시 반환형 단축키
안녕하세요 해당 수업을 인텔리제이가 아닌 이클립스를 사용해서 수강중입니다 List<UploadFile> uploadFiles =fileStore.storeFiles(imageFiles); 이런식으로 작성할 경우 =의 좌측 반환형을 단축키를 사용해서 반환하시던데 이클립스에서는 단축키가 없는건지 여쭤봅니다
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@JsonIgnore 는 엔티티에서 안붙여도 되는걸까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 강의 잘 보고 있습니다 감사합니다! 엔티티는 json으로 반환하지 않는 걸로 알고 있고 그렇게하면 안된다는 걸 이해했습니다. 그렇다면, 엔티티를 json으로 반환하지 않는 방식으로 설계를 한다면 @JsonIgnore 는 양방향 관계에서도 안붙여도 될까요??
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
distinct 질문 드립니다!
일대다 컬렉션 페치 조인 조회의 경우 팀A인 멤버가 1, 2, 3이면 DB는 멤버를 기준으로 조인을 해서 팀A인 row가 3개가 생기고 하이버네이트는 이를 받아와서 리스트로 반환(getResultList)해줄 때 리스트에 팀 A 엔티티를 3개 담아줍니다. 여기서 각각의 엔티티는 PK 값이 같기 때문에 서로 같은 엔티티를 참조합니다. (이렇게 이해를 했습니다!) 그러면 쿼리 횟수에 영향을 주는 건 페치 조인이고, distinct는 리스트에 중복 엔티티만 제거하는 역할만 하는 것 같은데 (select 다음 distinct가 추가되는 것 외에는 차이가 없음) 속도적인 면에서는 별 차이가 없는 것이 맞을까요??
-
미해결스프링 핵심 원리 - 고급편
실행시간에 따른 log 레벨 적용
강사님께서 말씀주신 실행시간에 따른 log 레벨 적용해 보았습니다. 필요하신 부분 참고부탁 드립니다. (오류시에만 로그 남기는 부분은 @AfterThrowing을 사용하면 될것같습니다, - retry 에서 재시도 부분 제거) 1. 애노테이션 - 기본값 1000 @Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface CheckTime { int value() default 1000;} 2. Aspect @Around("@annotation(checkTime)")public void checkTimer(ProceedingJoinPoint joinPoint, CheckTime checkTime) throws Throwable { int mills = checkTime.value(); int maxMills = 4000; StopWatch stopWatch = new StopWatch(); stopWatch.start(); joinPoint.proceed(); stopWatch.stop(); long totalTimeMillis = stopWatch.getTotalTimeMillis(); Signature signature = joinPoint.getSignature(); String methodName = signature.getName(); if (totalTimeMillis <= mills) { log.info("methodName: {}, 실행시간 = {}ms", methodName, totalTimeMillis); } else if (totalTimeMillis <= maxMills) { log.warn("methodName: {}, 실행시간 = {}ms", methodName, totalTimeMillis); } else { log.error("methodName: {}, 실행시간 = {}ms", methodName, totalTimeMillis); }} 3. 애플리케이션 코드 - 랜덤으로 실행시간 적용 @CheckTime(value = 2000)public String save(String itemId) { seq++; if (seq % 5 == 0) { throw new IllegalStateException("예외 발생"); } sleep(); return "ok";}private void sleep() { int[] ints = {1000, 2000,3000,4000,5000}; double random= Math.random(); int num = (int) Math.round(random * (ints.length-1)); System.out.println(ints[num]); try { Thread.sleep(ints[num]); } catch (InterruptedException e) { e.printStackTrace(); }}