월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
ordersV2(url : api/v2/orders) 실행 시 쿼리 질문
실행창을 확인해보니 해당 API 호출 시 쿼리가order -> member -> delivery -> orderitems -> item -> (2) -> item -> ( 1 ) ->member -> delivery -> orderitems ->item -> (2)->item 순으로 나갑니다.(1)에 두 번째 order 을 조회하는 쿼리가 나가야 하지않나요?처음 findAllByString 메서드로 두 개의 Order 모두 로딩했다.처음 로딩한 Order 을 1차캐시에서 가져왔다. 둘 중 뭐가 맞는지 궁금합니다. 다음으로(2) 에는 orderitem 이 조회 된다고 생각했었는데 왜 한번만 조회 된 후 item이 두 번 조회되는건지 궁금합니다. 다음으로orderItem 이 로딩되는 시점은 orderItem.getItem()이고Item의 로딩 시점은 orderItem.getItem().getName(); 이라고 알고 있는데 맞는지 궁금합니다.= 로딩이 '해당객체'의 조회 시점인지 '해당객체의 필드에 접근' 하는 시점인지 궁금합니다.
- 해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의 마지막 부분에 JPA1 Book
강의 마지막 부분에 name이 "JPA1 Book" 두 개면 하나는 처음에만 DB에 쿼리를 날려서 Book을 가져오고 그 다음 은 DB에 쿼리를 날리지 않고 영속성 컨텍스트에서 가져온다고 하셨습니다.이 부분은 이해가 됩니다.하지만 영속성 컨텍스트에서는 PK 값으로 객체가 구분 되는 것으로 알고 있는데 여기서 Book의 PK는 Long id 인데 단순히 name 이 "JPA1 Book"으로 같다고 동일 객체로 인식하여 DB를 거치지 않고 영속성 컨텍스트의 그 객체를 반환해주는 이유가 궁금합니다.
- 해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO에 @Getter가 필요한 이유
OrderDto, OrderItemDto 같은 DTO에 @Getter 가 필요한 이유가 궁금합니다.또, 요청을 받는 DTO는 요청 받을 필드만 선언하면 되고, 응답용 DTO는 응답하고 싶은 필드만 정의 하여 생성자를 만들면 되는지 궁금합니다.
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
9:08에서 출력된 "totalPrice" 는 어디서 출력된건가요?
도무지 찾을 수가 없습니다.OrderItem 엔티티에는 totalPrice 필드가 없습니다..
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO
안녕하세요. DTO와 엔티티의 차이가 무엇인가요??여기서는 createMemberRequest가 DTO가 되는 건가요???
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
회원등록 api
postman에서 Body에 form-data에서 key, value에 각각 name, hello 라고 하면 안되는데 스프링부트에서는 항상 Body-raw -> Json에서만 들어갈 데이터를 작성해야 되나요?? form-data에 name, hello 작성하면 안되나요??
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
API로 엔티티 등록 처리 시 질문있습니다.
API로 등록 처리 시, 엔티티 데이터에 대한 매핑을 어떻게 해야하는지 궁금하여 질문드립니다./party/create로 요청이 오면 요청을 위해 만들어진 dto인 CreatePartyRequest를 엔티티 클래스인 Party에 매핑하여 최종적으로 Party 테이블에 저장을 하려고 하는데요.post 요청을 통해 CreatePartyRequest에 Long타입인 ottId에 값이 들어오게 됩니다. 다음으로 엔티티 dto인 Party의 ott에 ottId 들어온 값을 넣으려고 하는데, 데이터형이 Ott인 데이터에 Long타입으로 들어온 아이디 값을 어떻게 넣어야할지 모르겠습니다..ott.setId(request.getOttId());이런식으로 하니 당연히 Party의 ott가 null이다라고 에러가 나오더라구요.. 알맞는 방법이 무엇일까요..? ㅠㅠ
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
질문이 있습니다.
private List<OrderItemQueryDto> findOrderItems(Long orderId) { return em.createQuery( "select new jpabook.jpashop.repository.query.OrderItemQueryDto(oi.order.id, i.name, oi.orderPrice, oi.count)" + " from OrderItem oi" + " join oi.item i" + //이걸 왜 하는거지 => 실 객체바꿀라고? " where oi.order.id = :orderId", OrderItemQueryDto.class ).setParameter("orderId", orderId).getResultList(); }위 코드에서 "join oi.item" 하는 이유가 궁금합니다.OrderItem엔 Item이 있으니 i.name 대신 oi.item.name하여도 될 것 같은데 굳이 Item도 조인하는 이유가 있을까요? 제가 생각한 결과로는 Item을 조인하여 i.name할 때 Item이 프록시에서 실 객체로 바뀌니 이것을 위해 조인하였을 것 같은데 맞을까요?
- 해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
/api/v1/simple-orders에서 무한루프가 발생하지 않고 NullPointerException이 발생합니다.
안녕하세요강의를 차근차근 듣고 있었는데 /api/v1/simple-orders 단계에서 무한루프가 발생하지 않고 NullPointerException이 발생하여 문의드립니다.주신 소스코드와 비교해가면서 무엇이 잘못되었는지도 봤는데, 아직 발견을 하지 못했습니다.ㅠㅠ 에러코드입니다.오후 5:06:10: Executing ':JpaShopApplication.main()'...> Task :compileJava> Task :processResources UP-TO-DATE> Task :classesNote: C:\Users\EUNJEONG\Desktop\github\Inflearn-spring\jpa-shop\src\main\java\jpabook\jpashop\api\MemberApiController.java uses unchecked or unsafe operations.Note: Recompile with -Xlint:unchecked for details.> Task :JpaShopApplication.main()17:06:12.589 [Thread-0] DEBUG org.springframework.boot.devtools.restart.classloader.RestartClassLoader - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@2df60ff8 . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.3)2022-09-02 17:06:13.266 INFO 26936 --- [ restartedMain] jpabook.jpashop.JpaShopApplication : Starting JpaShopApplication using Java 11.0.13 on DESKTOP-QKLC6IA with PID 26936 (C:\Users\EUNJEONG\Desktop\github\Inflearn-spring\jpa-shop\build\classes\java\main started by EUNJEONG in C:\Users\EUNJEONG\Desktop\github\Inflearn-spring\jpa-shop)2022-09-02 17:06:13.269 INFO 26936 --- [ restartedMain] jpabook.jpashop.JpaShopApplication : No active profile set, falling back to 1 default profile: "default"2022-09-02 17:06:13.349 INFO 26936 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable2022-09-02 17:06:13.349 INFO 26936 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'2022-09-02 17:06:14.884 INFO 26936 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2022-09-02 17:06:14.921 INFO 26936 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 14 ms. Found 0 JPA repository interfaces.2022-09-02 17:06:15.891 INFO 26936 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)2022-09-02 17:06:15.906 INFO 26936 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]2022-09-02 17:06:15.907 INFO 26936 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.65]2022-09-02 17:06:16.036 INFO 26936 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2022-09-02 17:06:16.036 INFO 26936 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2687 ms2022-09-02 17:06:16.248 INFO 26936 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2022-09-02 17:06:16.355 INFO 26936 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2022-09-02 17:06:16.371 INFO 26936 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:tcp://localhost/~/jpashop'2022-09-02 17:06:16.602 INFO 26936 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2022-09-02 17:06:16.667 INFO 26936 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.10.Final2022-09-02 17:06:16.889 INFO 26936 --- [ restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final}2022-09-02 17:06:16.928 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -> org.hibernate.type.BooleanType@6403f17a2022-09-02 17:06:16.928 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -> org.hibernate.type.BooleanType@6403f17a2022-09-02 17:06:16.929 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@6403f17a2022-09-02 17:06:16.929 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@353241f72022-09-02 17:06:16.930 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration true_false -> org.hibernate.type.TrueFalseType@bf5a83e2022-09-02 17:06:16.931 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration yes_no -> org.hibernate.type.YesNoType@3f5b85f52022-09-02 17:06:16.932 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -> org.hibernate.type.ByteType@38f5bf172022-09-02 17:06:16.933 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -> org.hibernate.type.ByteType@38f5bf172022-09-02 17:06:16.933 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@38f5bf172022-09-02 17:06:16.934 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration character -> org.hibernate.type.CharacterType@13b5e9dc2022-09-02 17:06:16.934 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration char -> org.hibernate.type.CharacterType@13b5e9dc2022-09-02 17:06:16.935 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@13b5e9dc2022-09-02 17:06:16.936 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration short -> org.hibernate.type.ShortType@4c8837e02022-09-02 17:06:16.936 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration short -> org.hibernate.type.ShortType@4c8837e02022-09-02 17:06:16.936 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Short -> org.hibernate.type.ShortType@4c8837e02022-09-02 17:06:16.938 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration integer -> org.hibernate.type.IntegerType@46a8156f2022-09-02 17:06:16.938 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration int -> org.hibernate.type.IntegerType@46a8156f2022-09-02 17:06:16.938 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@46a8156f2022-09-02 17:06:16.939 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration long -> org.hibernate.type.LongType@459eea7a2022-09-02 17:06:16.939 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration long -> org.hibernate.type.LongType@459eea7a2022-09-02 17:06:16.939 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Long -> org.hibernate.type.LongType@459eea7a2022-09-02 17:06:16.941 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration float -> org.hibernate.type.FloatType@47767afe2022-09-02 17:06:16.942 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration float -> org.hibernate.type.FloatType@47767afe2022-09-02 17:06:16.942 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Float -> org.hibernate.type.FloatType@47767afe2022-09-02 17:06:16.943 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration double -> org.hibernate.type.DoubleType@301e3192022-09-02 17:06:16.943 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration double -> org.hibernate.type.DoubleType@301e3192022-09-02 17:06:16.944 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@301e3192022-09-02 17:06:16.944 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@159c52352022-09-02 17:06:16.944 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@159c52352022-09-02 17:06:16.945 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration big_integer -> org.hibernate.type.BigIntegerType@36c33a92022-09-02 17:06:16.946 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@36c33a92022-09-02 17:06:16.947 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration string -> org.hibernate.type.StringType@5bec0a892022-09-02 17:06:16.947 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.String -> org.hibernate.type.StringType@5bec0a892022-09-02 17:06:16.948 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration nstring -> org.hibernate.type.StringNVarcharType@631511752022-09-02 17:06:16.948 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@6a1ec0cb2022-09-02 17:06:16.949 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration url -> org.hibernate.type.UrlType@5db22bcf2022-09-02 17:06:16.950 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.net.URL -> org.hibernate.type.UrlType@5db22bcf2022-09-02 17:06:16.951 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Duration -> org.hibernate.type.DurationType@2085a1902022-09-02 17:06:16.951 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Duration -> org.hibernate.type.DurationType@2085a1902022-09-02 17:06:16.953 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Instant -> org.hibernate.type.InstantType@67e67112022-09-02 17:06:16.954 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Instant -> org.hibernate.type.InstantType@67e67112022-09-02 17:06:16.955 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@96c6822022-09-02 17:06:16.955 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@96c6822022-09-02 17:06:16.957 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDate -> org.hibernate.type.LocalDateType@38afcf3a2022-09-02 17:06:16.957 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@38afcf3a2022-09-02 17:06:16.958 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@60aaa402022-09-02 17:06:16.958 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@60aaa402022-09-02 17:06:16.960 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@1803c1d72022-09-02 17:06:16.960 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@1803c1d72022-09-02 17:06:16.961 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@aedc5cc2022-09-02 17:06:16.961 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@aedc5cc2022-09-02 17:06:16.962 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@7b5384462022-09-02 17:06:16.963 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@7b5384462022-09-02 17:06:16.964 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration date -> org.hibernate.type.DateType@4ded30b02022-09-02 17:06:16.964 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Date -> org.hibernate.type.DateType@4ded30b02022-09-02 17:06:16.965 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration time -> org.hibernate.type.TimeType@27c352e72022-09-02 17:06:16.965 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Time -> org.hibernate.type.TimeType@27c352e72022-09-02 17:06:16.966 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration timestamp -> org.hibernate.type.TimestampType@6ea47aa62022-09-02 17:06:16.966 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@6ea47aa62022-09-02 17:06:16.966 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Date -> org.hibernate.type.TimestampType@6ea47aa62022-09-02 17:06:16.967 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@1841901c2022-09-02 17:06:16.969 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar -> org.hibernate.type.CalendarType@620b21b62022-09-02 17:06:16.969 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@620b21b62022-09-02 17:06:16.969 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@620b21b62022-09-02 17:06:16.970 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@1db7f3032022-09-02 17:06:16.970 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_time -> org.hibernate.type.CalendarTimeType@7fc72f612022-09-02 17:06:16.972 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration locale -> org.hibernate.type.LocaleType@33082bc82022-09-02 17:06:16.972 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@33082bc82022-09-02 17:06:16.974 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration currency -> org.hibernate.type.CurrencyType@309e9cff2022-09-02 17:06:16.974 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@309e9cff2022-09-02 17:06:16.975 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration timezone -> org.hibernate.type.TimeZoneType@1fb09ad72022-09-02 17:06:16.975 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@1fb09ad72022-09-02 17:06:16.976 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration class -> org.hibernate.type.ClassType@42b173ec2022-09-02 17:06:16.976 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Class -> org.hibernate.type.ClassType@42b173ec2022-09-02 17:06:16.977 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@9c30afa2022-09-02 17:06:16.977 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@9c30afa2022-09-02 17:06:16.978 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@71cd9ba12022-09-02 17:06:16.979 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration binary -> org.hibernate.type.BinaryType@15cd7c6a2022-09-02 17:06:16.979 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration byte[] -> org.hibernate.type.BinaryType@15cd7c6a2022-09-02 17:06:16.979 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [B -> org.hibernate.type.BinaryType@15cd7c6a2022-09-02 17:06:16.980 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@18c9f06c2022-09-02 17:06:16.980 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@18c9f06c2022-09-02 17:06:16.980 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@18c9f06c2022-09-02 17:06:16.981 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration row_version -> org.hibernate.type.RowVersionType@7928f85d2022-09-02 17:06:16.981 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration image -> org.hibernate.type.ImageType@4e1b40fa2022-09-02 17:06:16.982 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration characters -> org.hibernate.type.CharArrayType@6aa9a8e82022-09-02 17:06:16.982 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration char[] -> org.hibernate.type.CharArrayType@6aa9a8e82022-09-02 17:06:16.982 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [C -> org.hibernate.type.CharArrayType@6aa9a8e82022-09-02 17:06:16.983 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@3e2fcf012022-09-02 17:06:16.983 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@3e2fcf012022-09-02 17:06:16.983 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@3e2fcf012022-09-02 17:06:16.984 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration text -> org.hibernate.type.TextType@17f9dfd2022-09-02 17:06:16.985 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration ntext -> org.hibernate.type.NTextType@5f1ea47f2022-09-02 17:06:16.987 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration blob -> org.hibernate.type.BlobType@5537f97b2022-09-02 17:06:16.987 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@5537f97b2022-09-02 17:06:16.987 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@49a4fbb2022-09-02 17:06:16.989 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration clob -> org.hibernate.type.ClobType@1586c2812022-09-02 17:06:16.989 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@1586c2812022-09-02 17:06:16.990 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration nclob -> org.hibernate.type.NClobType@728233b82022-09-02 17:06:16.990 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@728233b82022-09-02 17:06:16.991 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@7f6d685a2022-09-02 17:06:16.991 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@3fd21eae2022-09-02 17:06:16.992 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration serializable -> org.hibernate.type.SerializableType@27a532d12022-09-02 17:06:16.996 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration object -> org.hibernate.type.ObjectType@328f6b112022-09-02 17:06:16.996 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@328f6b112022-09-02 17:06:16.996 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@1e18cee72022-09-02 17:06:16.996 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@1a0eeb9b2022-09-02 17:06:16.996 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@6e2992962022-09-02 17:06:16.997 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@e48566e2022-09-02 17:06:16.997 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@56ffdeb62022-09-02 17:06:16.997 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@3bc0b5c12022-09-02 17:06:16.997 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@19df2d0d2022-09-02 17:06:16.997 DEBUG 26936 --- [ restartedMain] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@55e8e37e2022-09-02 17:06:17.091 INFO 26936 --- [ restartedMain] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect2022-09-02 17:06:17.128 DEBUG 26936 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2913b3fb] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@24490647]2022-09-02 17:06:17.357 INFO 26936 --- [ restartedMain] org.hibernate.tuple.PojoInstantiator : HHH000182: No default (no-argument) constructor for class: jpabook.jpashop.domain.DeliveryStatus (class must be instantiated by Interceptor)2022-09-02 17:06:17.563 DEBUG 26936 --- [ restartedMain] org.hibernate.type.EnumType : Using NAMED-based conversion for Enum jpabook.jpashop.domain.OrderStatus2022-09-02 17:06:17.564 DEBUG 26936 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2913b3fb] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@4ea503a7]2022-09-02 17:06:18.014 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : drop table if exists category CASCADE 2022-09-02 17:06:18.032 INFO 26936 --- [ restartedMain] p6spy : #1662105978032 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists category CASCADE drop table if exists category CASCADE ;2022-09-02 17:06:18.032 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : drop table if exists category_item CASCADE 2022-09-02 17:06:18.033 INFO 26936 --- [ restartedMain] p6spy : #1662105978033 | 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-09-02 17:06:18.033 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : drop table if exists delivery CASCADE 2022-09-02 17:06:18.033 INFO 26936 --- [ restartedMain] p6spy : #1662105978033 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists delivery CASCADE drop table if exists delivery CASCADE ;2022-09-02 17:06:18.033 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : drop table if exists item CASCADE 2022-09-02 17:06:18.033 INFO 26936 --- [ restartedMain] p6spy : #1662105978033 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists item CASCADE drop table if exists item CASCADE ;2022-09-02 17:06:18.033 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : drop table if exists member CASCADE 2022-09-02 17:06:18.033 INFO 26936 --- [ restartedMain] p6spy : #1662105978033 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists member CASCADE drop table if exists member CASCADE ;2022-09-02 17:06:18.033 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : drop table if exists order_item CASCADE 2022-09-02 17:06:18.034 INFO 26936 --- [ restartedMain] p6spy : #1662105978034 | 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-09-02 17:06:18.034 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : drop table if exists orders CASCADE 2022-09-02 17:06:18.034 INFO 26936 --- [ restartedMain] p6spy : #1662105978034 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop table if exists orders CASCADE drop table if exists orders CASCADE ;2022-09-02 17:06:18.034 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : drop sequence if exists hibernate_sequence2022-09-02 17:06:18.034 INFO 26936 --- [ restartedMain] p6spy : #1662105978034 | took 0ms | statement | connection 2| url jdbc:h2:tcp://localhost/~/jpashop drop sequence if exists hibernate_sequence drop sequence if exists hibernate_sequence;2022-09-02 17:06:18.037 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : create sequence hibernate_sequence start with 1 increment by 12022-09-02 17:06:18.038 INFO 26936 --- [ restartedMain] p6spy : #1662105978038 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashopcreate sequence hibernate_sequence start with 1 increment by 1create sequence hibernate_sequence start with 1 increment by 1;2022-09-02 17:06:18.038 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : create table category ( category_id bigint not null, name varchar(255), parent_id bigint, primary key (category_id) )2022-09-02 17:06:18.039 INFO 26936 --- [ restartedMain] p6spy : #1662105978039 | 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-09-02 17:06:18.039 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : create table category_item ( category_id bigint not null, item_id bigint not null )2022-09-02 17:06:18.039 INFO 26936 --- [ restartedMain] p6spy : #1662105978039 | 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-09-02 17:06:18.040 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : create table delivery ( delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), primary key (delivery_id) )2022-09-02 17:06:18.040 INFO 26936 --- [ restartedMain] p6spy : #1662105978040 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop create table delivery ( delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), primary key (delivery_id) ) create table delivery ( delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), primary key (delivery_id) );2022-09-02 17:06:18.040 DEBUG 26936 --- [ 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-09-02 17:06:18.041 INFO 26936 --- [ restartedMain] p6spy : #1662105978041 | 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-09-02 17:06:18.041 DEBUG 26936 --- [ 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-09-02 17:06:18.042 INFO 26936 --- [ restartedMain] p6spy : #1662105978041 | 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-09-02 17:06:18.042 DEBUG 26936 --- [ 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-09-02 17:06:18.042 INFO 26936 --- [ restartedMain] p6spy : #1662105978042 | 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-09-02 17:06:18.042 DEBUG 26936 --- [ 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-09-02 17:06:18.043 INFO 26936 --- [ restartedMain] p6spy : #1662105978043 | 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-09-02 17:06:18.043 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : alter table category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category2022-09-02 17:06:18.048 INFO 26936 --- [ restartedMain] p6spy : #1662105978048 | took 4ms | 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-09-02 17:06:18.048 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : alter table category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item2022-09-02 17:06:18.049 INFO 26936 --- [ restartedMain] p6spy : #1662105978049 | 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-09-02 17:06:18.049 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : alter table category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category2022-09-02 17:06:18.050 INFO 26936 --- [ restartedMain] p6spy : #1662105978050 | 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-09-02 17:06:18.050 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : alter table order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item2022-09-02 17:06:18.052 INFO 26936 --- [ restartedMain] p6spy : #1662105978052 | took 1ms | 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-09-02 17:06:18.052 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : alter table order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders2022-09-02 17:06:18.053 INFO 26936 --- [ restartedMain] p6spy : #1662105978053 | took 1ms | 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-09-02 17:06:18.053 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : alter table orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery2022-09-02 17:06:18.055 INFO 26936 --- [ restartedMain] p6spy : #1662105978055 | 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-09-02 17:06:18.055 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : alter table orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member2022-09-02 17:06:18.055 INFO 26936 --- [ restartedMain] p6spy : #1662105978055 | 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-09-02 17:06:18.056 INFO 26936 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]2022-09-02 17:06:18.063 TRACE 26936 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@4ea503a7] for TypeConfiguration2022-09-02 17:06:18.064 INFO 26936 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'Init1class jpabook.jpashop.InitDb$InitService2022-09-02 17:06:18.220 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.239 INFO 26936 --- [ restartedMain] p6spy : #1662105978239 | took 10ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.264 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.264 INFO 26936 --- [ restartedMain] p6spy : #1662105978264 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.265 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.266 INFO 26936 --- [ restartedMain] p6spy : #1662105978266 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.266 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.266 INFO 26936 --- [ restartedMain] p6spy : #1662105978266 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.267 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.269 INFO 26936 --- [ restartedMain] p6spy : #1662105978269 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.271 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.272 INFO 26936 --- [ restartedMain] p6spy : #1662105978272 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.272 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.272 INFO 26936 --- [ restartedMain] p6spy : #1662105978272 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.299 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)2022-09-02 17:06:18.301 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [서울]2022-09-02 17:06:18.301 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [VARCHAR] - [1]2022-09-02 17:06:18.301 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [VARCHAR] - [1111]2022-09-02 17:06:18.301 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [userA]2022-09-02 17:06:18.302 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [BIGINT] - [1]2022-09-02 17:06:18.304 INFO 26936 --- [ restartedMain] p6spy : #1662105978304 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopinsert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)insert into member (city, street, zipcode, name, member_id) values ('서울', '1', '1111', 'userA', 1);2022-09-02 17:06:18.305 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?)2022-09-02 17:06:18.305 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [JPA1 BOOK]2022-09-02 17:06:18.306 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [10000]2022-09-02 17:06:18.306 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [100]2022-09-02 17:06:18.306 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [null]2022-09-02 17:06:18.307 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [null]2022-09-02 17:06:18.307 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [2]2022-09-02 17:06:18.307 INFO 26936 --- [ restartedMain] p6spy : #1662105978307 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopinsert 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 ('JPA1 BOOK', 10000, 100, NULL, NULL, 'B', 2);2022-09-02 17:06:18.307 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?)2022-09-02 17:06:18.308 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [JPA2 BOOK]2022-09-02 17:06:18.308 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [20000]2022-09-02 17:06:18.308 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [100]2022-09-02 17:06:18.308 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [null]2022-09-02 17:06:18.308 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [null]2022-09-02 17:06:18.308 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [3]2022-09-02 17:06:18.308 INFO 26936 --- [ restartedMain] p6spy : #1662105978308 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopinsert 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 ('JPA2 BOOK', 20000, 100, NULL, NULL, 'B', 3);2022-09-02 17:06:18.309 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into delivery (city, street, zipcode, delivery_id) values (?, ?, ?, ?)2022-09-02 17:06:18.310 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [서울]2022-09-02 17:06:18.310 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [VARCHAR] - [1]2022-09-02 17:06:18.310 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [VARCHAR] - [1111]2022-09-02 17:06:18.310 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [BIGINT] - [5]2022-09-02 17:06:18.310 INFO 26936 --- [ restartedMain] p6spy : #1662105978310 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopinsert into delivery (city, street, zipcode, delivery_id) values (?, ?, ?, ?)insert into delivery (city, street, zipcode, delivery_id) values ('서울', '1', '1111', 5);2022-09-02 17:06:18.311 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into orders (delivery_id, member_id, order_date, status, order_id) values (?, ?, ?, ?, ?)2022-09-02 17:06:18.311 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [BIGINT] - [5]2022-09-02 17:06:18.311 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [BIGINT] - [1]2022-09-02 17:06:18.311 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [TIMESTAMP] - [2022-09-02T17:06:18.266087900]2022-09-02 17:06:18.312 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [ORDER]2022-09-02 17:06:18.313 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [BIGINT] - [4]2022-09-02 17:06:18.314 INFO 26936 --- [ restartedMain] p6spy : #1662105978314 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopinsert into orders (delivery_id, member_id, order_date, status, order_id) values (?, ?, ?, ?, ?)insert into orders (delivery_id, member_id, order_date, status, order_id) values (5, 1, '2022-09-02T17:06:18.266+0900', 'ORDER', 4);2022-09-02 17:06:18.314 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?)2022-09-02 17:06:18.315 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [INTEGER] - [1]2022-09-02 17:06:18.315 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [BIGINT] - [2]2022-09-02 17:06:18.315 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [BIGINT] - [4]2022-09-02 17:06:18.315 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [INTEGER] - [10000]2022-09-02 17:06:18.315 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [BIGINT] - [6]2022-09-02 17:06:18.316 INFO 26936 --- [ restartedMain] p6spy : #1662105978316 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopinsert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?)insert into order_item (count, item_id, order_id, order_price, order_item_id) values (1, 2, 4, 10000, 6);2022-09-02 17:06:18.316 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?)2022-09-02 17:06:18.316 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [INTEGER] - [2]2022-09-02 17:06:18.317 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [BIGINT] - [3]2022-09-02 17:06:18.317 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [BIGINT] - [4]2022-09-02 17:06:18.317 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [INTEGER] - [20000]2022-09-02 17:06:18.317 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [BIGINT] - [7]2022-09-02 17:06:18.317 INFO 26936 --- [ restartedMain] p6spy : #1662105978317 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopinsert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?)insert into order_item (count, item_id, order_id, order_price, order_item_id) values (2, 3, 4, 20000, 7);2022-09-02 17:06:18.319 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : update item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=?2022-09-02 17:06:18.320 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [JPA1 BOOK]2022-09-02 17:06:18.320 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [10000]2022-09-02 17:06:18.321 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [99]2022-09-02 17:06:18.321 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [null]2022-09-02 17:06:18.321 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [null]2022-09-02 17:06:18.321 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [2]2022-09-02 17:06:18.322 INFO 26936 --- [ restartedMain] p6spy : #1662105978322 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopupdate item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=?update item set name='JPA1 BOOK', price=10000, stock_quantity=99, author=NULL, isbn=NULL where item_id=2;2022-09-02 17:06:18.324 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : update item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=?2022-09-02 17:06:18.324 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [JPA2 BOOK]2022-09-02 17:06:18.325 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [20000]2022-09-02 17:06:18.325 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [98]2022-09-02 17:06:18.325 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [null]2022-09-02 17:06:18.325 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [null]2022-09-02 17:06:18.325 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [3]2022-09-02 17:06:18.325 INFO 26936 --- [ restartedMain] p6spy : #1662105978325 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashopupdate item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=?update item set name='JPA2 BOOK', price=20000, stock_quantity=98, author=NULL, isbn=NULL where item_id=3;2022-09-02 17:06:18.329 INFO 26936 --- [ restartedMain] p6spy : #1662105978329 | took 0ms | commit | connection 4| url jdbc:h2:tcp://localhost/~/jpashop;2022-09-02 17:06:18.331 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.332 INFO 26936 --- [ restartedMain] p6spy : #1662105978332 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.332 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.332 INFO 26936 --- [ restartedMain] p6spy : #1662105978332 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.332 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.333 INFO 26936 --- [ restartedMain] p6spy : #1662105978333 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.333 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.333 INFO 26936 --- [ restartedMain] p6spy : #1662105978333 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.334 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.334 INFO 26936 --- [ restartedMain] p6spy : #1662105978334 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.334 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.335 INFO 26936 --- [ restartedMain] p6spy : #1662105978335 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.336 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : call next value for hibernate_sequence2022-09-02 17:06:18.337 INFO 26936 --- [ restartedMain] p6spy : #1662105978337 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopcall next value for hibernate_sequencecall next value for hibernate_sequence;2022-09-02 17:06:18.338 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)2022-09-02 17:06:18.339 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [진주]2022-09-02 17:06:18.339 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [VARCHAR] - [2]2022-09-02 17:06:18.340 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [VARCHAR] - [2222]2022-09-02 17:06:18.340 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [userB]2022-09-02 17:06:18.340 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [BIGINT] - [8]2022-09-02 17:06:18.340 INFO 26936 --- [ restartedMain] p6spy : #1662105978340 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopinsert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)insert into member (city, street, zipcode, name, member_id) values ('진주', '2', '2222', 'userB', 8);2022-09-02 17:06:18.340 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?)2022-09-02 17:06:18.341 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [SPRING1 BOOK]2022-09-02 17:06:18.341 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [20000]2022-09-02 17:06:18.341 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [200]2022-09-02 17:06:18.341 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [null]2022-09-02 17:06:18.341 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [null]2022-09-02 17:06:18.341 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [9]2022-09-02 17:06:18.342 INFO 26936 --- [ restartedMain] p6spy : #1662105978342 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopinsert 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 ('SPRING1 BOOK', 20000, 200, NULL, NULL, 'B', 9);2022-09-02 17:06:18.342 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into item (name, price, stock_quantity, author, isbn, dtype, item_id) values (?, ?, ?, ?, ?, 'B', ?)2022-09-02 17:06:18.342 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [SPRING2 BOOK]2022-09-02 17:06:18.342 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [40000]2022-09-02 17:06:18.342 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [300]2022-09-02 17:06:18.343 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [null]2022-09-02 17:06:18.343 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [null]2022-09-02 17:06:18.343 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [10]2022-09-02 17:06:18.343 INFO 26936 --- [ restartedMain] p6spy : #1662105978343 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopinsert 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 ('SPRING2 BOOK', 40000, 300, NULL, NULL, 'B', 10);2022-09-02 17:06:18.344 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into delivery (city, street, zipcode, delivery_id) values (?, ?, ?, ?)2022-09-02 17:06:18.344 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [진주]2022-09-02 17:06:18.344 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [VARCHAR] - [2]2022-09-02 17:06:18.344 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [VARCHAR] - [2222]2022-09-02 17:06:18.344 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [BIGINT] - [12]2022-09-02 17:06:18.345 INFO 26936 --- [ restartedMain] p6spy : #1662105978345 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopinsert into delivery (city, street, zipcode, delivery_id) values (?, ?, ?, ?)insert into delivery (city, street, zipcode, delivery_id) values ('진주', '2', '2222', 12);2022-09-02 17:06:18.345 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into orders (delivery_id, member_id, order_date, status, order_id) values (?, ?, ?, ?, ?)2022-09-02 17:06:18.345 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [BIGINT] - [12]2022-09-02 17:06:18.346 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [BIGINT] - [8]2022-09-02 17:06:18.346 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [TIMESTAMP] - [2022-09-02T17:06:18.333837100]2022-09-02 17:06:18.346 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [ORDER]2022-09-02 17:06:18.346 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [BIGINT] - [11]2022-09-02 17:06:18.347 INFO 26936 --- [ restartedMain] p6spy : #1662105978347 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopinsert into orders (delivery_id, member_id, order_date, status, order_id) values (?, ?, ?, ?, ?)insert into orders (delivery_id, member_id, order_date, status, order_id) values (12, 8, '2022-09-02T17:06:18.333+0900', 'ORDER', 11);2022-09-02 17:06:18.348 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?)2022-09-02 17:06:18.348 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [INTEGER] - [3]2022-09-02 17:06:18.348 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [BIGINT] - [9]2022-09-02 17:06:18.348 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [BIGINT] - [11]2022-09-02 17:06:18.348 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [INTEGER] - [20000]2022-09-02 17:06:18.348 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [BIGINT] - [13]2022-09-02 17:06:18.348 INFO 26936 --- [ restartedMain] p6spy : #1662105978348 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopinsert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?)insert into order_item (count, item_id, order_id, order_price, order_item_id) values (3, 9, 11, 20000, 13);2022-09-02 17:06:18.349 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : insert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?)2022-09-02 17:06:18.349 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [INTEGER] - [4]2022-09-02 17:06:18.349 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [BIGINT] - [10]2022-09-02 17:06:18.349 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [BIGINT] - [11]2022-09-02 17:06:18.349 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [INTEGER] - [40000]2022-09-02 17:06:18.349 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [BIGINT] - [14]2022-09-02 17:06:18.350 INFO 26936 --- [ restartedMain] p6spy : #1662105978350 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopinsert into order_item (count, item_id, order_id, order_price, order_item_id) values (?, ?, ?, ?, ?)insert into order_item (count, item_id, order_id, order_price, order_item_id) values (4, 10, 11, 40000, 14);2022-09-02 17:06:18.350 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : update item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=?2022-09-02 17:06:18.352 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [SPRING1 BOOK]2022-09-02 17:06:18.352 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [20000]2022-09-02 17:06:18.352 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [197]2022-09-02 17:06:18.352 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [null]2022-09-02 17:06:18.353 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [null]2022-09-02 17:06:18.353 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [9]2022-09-02 17:06:18.353 INFO 26936 --- [ restartedMain] p6spy : #1662105978353 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopupdate item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=?update item set name='SPRING1 BOOK', price=20000, stock_quantity=197, author=NULL, isbn=NULL where item_id=9;2022-09-02 17:06:18.354 DEBUG 26936 --- [ restartedMain] org.hibernate.SQL : update item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=?2022-09-02 17:06:18.354 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [SPRING2 BOOK]2022-09-02 17:06:18.354 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [INTEGER] - [40000]2022-09-02 17:06:18.354 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [INTEGER] - [296]2022-09-02 17:06:18.354 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [VARCHAR] - [null]2022-09-02 17:06:18.354 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [VARCHAR] - [null]2022-09-02 17:06:18.355 TRACE 26936 --- [ restartedMain] o.h.type.descriptor.sql.BasicBinder : binding parameter [6] as [BIGINT] - [10]2022-09-02 17:06:18.355 INFO 26936 --- [ restartedMain] p6spy : #1662105978355 | took 0ms | statement | connection 5| url jdbc:h2:tcp://localhost/~/jpashopupdate item set name=?, price=?, stock_quantity=?, author=?, isbn=? where item_id=?update item set name='SPRING2 BOOK', price=40000, stock_quantity=296, author=NULL, isbn=NULL where item_id=10;2022-09-02 17:06:18.355 INFO 26936 --- [ restartedMain] p6spy : #1662105978355 | took 0ms | commit | connection 5| url jdbc:h2:tcp://localhost/~/jpashop;2022-09-02 17:06:18.465 WARN 26936 --- [ 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 warning2022-09-02 17:06:18.669 INFO 26936 --- [ restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]2022-09-02 17:06:18.916 INFO 26936 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 357292022-09-02 17:06:18.966 INFO 26936 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''2022-09-02 17:06:18.979 INFO 26936 --- [ restartedMain] jpabook.jpashop.JpaShopApplication : Started JpaShopApplication in 6.365 seconds (JVM running for 7.151)2022-09-02 17:07:07.896 INFO 26936 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'2022-09-02 17:07:07.897 INFO 26936 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'2022-09-02 17:07:07.898 INFO 26936 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms2022-09-02 17:07:07.956 ERROR 26936 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root causejava.lang.NullPointerException: null at jpabook.jpashop.api.OrderSimpleApiController.ordersV1(OrderSimpleApiController.java:30) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[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:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.22.jar:5.3.22] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.22.jar:5.3.22] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.22.jar:5.3.22] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.22.jar:5.3.22] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1070) ~[spring-webmvc-5.3.22.jar:5.3.22] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.22.jar:5.3.22] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.22.jar:5.3.22] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.22.jar:5.3.22] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.65.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.22.jar:5.3.22] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.65.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
save할때 프록시 강제초기화에 대해 질문있습니다
안녕하세요 김영한 강사님,JPA를 사용하면서 OSIV의 설정에따라 영속성관계를 핸들링하는거에 크게 감명받고, false로 설정하여 성능최적화에 여러가지 테스트를 해보고있습니다.그중 https://www.inflearn.com/questions/632908 의 질문에서도 남겼던건데, 공식서포터즈님의 답변을 받았지만 역시나 궁금한점이 있어서 질문 다시 남깁니다.제가 가장 궁금한 질문은, 위 질문의 답변으로 추측하여 엔티티의 생성(insert)시 해당 엔티티가 가진 연관관계를 모두 초기화해서 넣어야한다면,실무에서 사용하고 계실 때 insert 쿼리 1개에, 부가적으로 프록시의 초기화로 select가 @xxToxx의 수 만큼 발생 하는게 성능적으로 이슈가 없으셨나요?(기존 조회에서 N+1 문제와 비슷하거나 같다고 보여서..)간단한 강의용 예제가 아닌 실무에서는 연관 관계가 더 복잡하고 많을텐데 어떻게 나누어 사용하시는지이런 문제나 생각이 안 생길 만큼 설계 해야 하거나 다른 해결 방법이 있을까요?
- 해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
항상 좋은 강의와 답변 감사합니다.
강사님께서 알려주신 컬렉션 최적화 강의 덕분에 querydsl 가지고 각종 조회 쿼리들을 편안하게 짜고 있습니다. 감사합니다. 사용 중에 궁금한 점이 생겨 질문을 하게 되었습니다. 만약에 테이블이 두 개의 toMany 관계로 있을 때, one에 해당하는 테이블을 먼저 조회하고 알려주신 방식대로 컬렉션 조회를 할 때, toMany에 있는 테이블을 orderby를 사용해서 정렬을 하게 될 경우toMany를 디비에서 끄집어 내고 정렬을 하고, 먼저 조회를 한 테이블도 정렬을 한 테이블의 정렬 순서대로 되는 것인지 궁금하여 질문을 하게 되었습니다.좋은 강의를 찍어주셔서 정말 감사합니다.!!!!
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
해당 강의에서의 내용의 대부분은 queryDsl로 적용된다고 하시는데
해당 강의에서의 내용의 대부분은 queryDsl로 적용된다고 하시는데... 그렇다고 하면 해당 내용은 진지하게 듣고 복습할 필요없이 그냥 이런것도 있구나~ , 불편한 점이 ~~게 있고. 이떄문에 queyDsl에 나왔구나 정도의 마인드로 해당 강의를 들으면 될까요?결국은 해당 내용 들어도 queryDsl로 다 가능하니까...김영한 강사님도 실무에선 queryDsl을 많이 사용한다고 하셔서 질문드려용..
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요. Entity 필드 구성과 응답 DTO에 대해 질문 드립니다.
안녕하세요 김영한 강사님. 항상 좋은 강의와 친절한 답변 너무 감사드립니다.강의를 듣고 게시판 구현 프로젝트 진행 중 두 가지 고민이 생겨 질문 드립니다.첫 번째 질문은전체 게시글 리스트를 반환할 때, 게시글 리스트에 댓글 개수와 태그 이름 등을 함께 API 응답으로 반환해야 하는 상황입니다. 이때,엔티티의 필드에 comment_count, tag_name 형식으로 적어줘야 할 지, 아니면comment와 tag 테이블에 쿼리를 날려 가져와서 응답 DTO 필드에 적어줘야 할 지 고민하고 있는 상황입니다.1번 방식으로 하면 무언가 불필요한 필드가 테이블에 포함되는 것 같고, 2번 방식은 추가 쿼리가 많이 나갈 것 같아 망설여집니다.보통 이런 경우 어떤 방식으로 처리는 게 좋은 지 궁금합니다!두 번째 질문은응답 DTO에 클라이언트가 필요로 하지 않는 데이터가 포함되어 있어도 되는지 궁금합니다.예를 들어, title과 content를 필드로 가지는 DTO를, title만을 필요로 하는 요청에 반환해도 괜찮은 지, 아니면 응답 마다 DTO 각각 따로 생성해야 하는지 궁금합니다
- 해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요, 강제초기화에 대해서 궁금한점이 있습니다.
안녕하세요 김영한 강사님,강의에서는 단순 조회이기때문에 강제초기화를 선택적으로 할수있으니 쿼리가 나가는 수를 줄일수있는거로 이해했습니다.그렇다면 만약 조회가아닌 Order가 다른엔티티 생성메서드에 집어넣으려면 proxy상태로 들어가면 안되니까 모두다 초기화를 해야할텐데..궁금한점은지금은 간단한 예제로 Member엔티티에는 생성메서드가 없지만 추후에 생긴다고하면, 연관관계 메서드에서 member.getOrders().add(this) 할때 Order에 proxy를 모두 강제초기화를 해서 집어넣어야하는건가요?Order엔티티가 추후에 @OneToMany가 점점 늘어나는방향으로 설계가 되었고, Member 생성메서드에 Order가 들어가야해서 proxy를 강제초기화하는 과정에서 쿼리가 @OneToMany의 수만큼 나가야한다면 이것은 엔티티 설계를 비효율적으로 하는건가요? 아니면 다른방법이 있는건가요?
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
스프링 데이터 JPA 사용에 대해 궁금한점 있습니다.
안녕하세요 강사님, 기존의 repository에서 스프링데이터JPA를 적용하고, order를 조회할때findById로 조회한다면 딸려오는 member 는 초기화가 안되어있으니..?초기화를 하기위해 getName을 사용하면 member select 쿼리가 나갈텐데 그러면 쿼리가 총 2개가 나갈거로 예상합니다.그걸 방지하기 위해 JPQL fetch join을 사용했었는데,예를들어 findByIdFetchJoinMember 같이 처음에 조회할때 member도 긁어오는건 스프링 jpa에서는 지원을 안하는지 궁금합니다.없다면.. 결국엔 @XXToOne가 작성되어있는 엔티티는 조회할때 JPQL로 명시적으로 fetch join을 사용하는 방법밖엔 없나요?
- 해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
fetch join에 관련하여 문의드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 fetch join 과 join에 관련하여 문의드립니다. fetch join 시 fetch join 뒤에 붙은 엔티티객체에 별칭을 사용 할 수 없는 걸로 알고 있습니다. ex) select o from Order o join fetch o.member m 에서 o.member 뒤에 m 사용 불가로 알고 있습니다. 그럼 만약 Member Entity에서 name이 userA라는 사람이라는 조건을 주고 싶은 경우 select o from Order o join fetch o.member m where m.member_id = 'userA' 와 같이 사용 하면 안되고 join 쿼리로 SELECT o from Order o join o.member where m.member_id = 'userA' 와 같이 사용 해야 되는지 문의드립니다. select o from Order o join o.member where m.meber_id = 'userA' 와 같이 사용 하는 경우 order 엔티티에 있는 member 단일 연관 관계에서 name 을 가져오는 경우 초기화가 되어 쿼리문이 다시 나가는 걸로 알고 있습니다. 그래서 한번쿼리문과 조건을 같이 사용하기위해서 DTO로 직접 받아오는게 맞는지도 궁금합니다. 감사합니다.
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요 해당 오류 질문드립니다 ㅠㅠ
안녕하세요 강의보면서 하다가 500에러를 마주하게 되서 ... 해결해보려고 했는데 잘 모르겠어서 질문드립니다.. (찾아보니 .. Order 엔티티와 Member 엔티티의 문제가 있는거 같아서 @JsonIgnore로 해결해보려고 했는데 잘 안되네욤...ㅠㅠ , ) 미리 답변 감사드립니다..(__) package jpabook.jpashop.api; import jpabook.jpashop.domain.Order; import jpabook.jpashop.domain.OrderItem; import jpabook.jpashop.repository.OrderRepository; import jpabook.jpashop.repository.OrderSearch; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequiredArgsConstructor public class OrderApiController { private final OrderRepository orderRepository; @GetMapping("/api/v1/orders") private List<Order> ordersV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName(); order.getDelivery().getAddress(); List<OrderItem> orderItems = order.getOrderItems(); orderItems.stream().forEach(o -> o.getItem().getName()); } return all; } } package jpabook.jpashop.domain; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @Embedded private Address address; @JsonIgnore @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); } package jpabook.jpashop.domain; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Entity @Table(name = "orders") @Getter@Setter public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "delivery_id") private Delivery delivery; private LocalDateTime orderDate; @Enumerated(EnumType.STRING) private OrderStatus status; public void setMember(Member member) { this.member = member; member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); } public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); } // 생성 메서드 public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) { Order order = new Order(); order.setMember(member); order.setDelivery(delivery); for (OrderItem orderItem : orderItems) { order.addOrderItem(orderItem); } order.setStatus(OrderStatus.ORDER); order.setOrderDate(LocalDateTime.now()); return order; } //비즈니스 로직 /*주문취소*/ public void cancel(){ if (delivery.getStatus() == DeliveryStatus.COMP) { throw new IllegalStateException("이미 배송완료된 상품은 취소가 불가능 합니다."); } this.setStatus(OrderStatus.CANCEL); for (OrderItem orderItem : orderItems) { orderItem.cancel(); } } public int getTotalPrice() { int totalPrice = 0; for (OrderItem orderItem : orderItems) { totalPrice += orderItem.getTotalPrice(); } return totalPrice; } } 2022-08-21 16:54:05.638 ERROR 60781 --- [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]->jpabook.jpashop.domain.Order["member"]->jpabook.jpashop.domain.Member$HibernateProxy$PoOpCCHU["hibernateLazyInitializer"])] with root cause com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]->jpabook.jpashop.domain.Order["member"]->jpabook.jpashop.domain.Member$HibernateProxy$PoOpCCHU["hibernateLazyInitializer"]) at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1277) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:71) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:33) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:755) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:755) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:145) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:107) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:400) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1512) ~[jackson-databind-2.11.3.jar:2.11.3] at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1006) ~[jackson-databind-2.11.3.jar:2.11.3] at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:345) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:277) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:124) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1061) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:961) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.2.jar:5.3.2] at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) ~[tomcat-embed-core-9.0.41.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.2.jar:5.3.2] at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.41.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
페치조인 select 필드에 의문이 있습니다.
이번 강의에 나온 예시처럼 fetch join을 여러 관계에 적용한다면 한번의 select 쿼리에 모든 필드값을 가져오게 됩니다. 여기서 의문이 생긴게 만약 필요한 필드의 개수가 소수라면, 해당하는 필드만 select 하여 가져오는게 성능상 좋을지 아니면 페치 조인을 통해 한방 쿼리로 가져 오는게 성능상 좋을지 입니다. 전자의 경우 다수의 select 문이 실행되겠지만 가져오는 조회하는 필드는 적고, 후자의 경우 한번의 select 문이 실행되지만 모든 필드를 조회합니다. 이러한 경우엔 어떤 방식이 유리한가요? 페치조인으로 한방에 가져오는 메서드로 여러 방면에서 재사용하는 것이 좋은지, 각 상황에 맞는 쿼리로 다수의 메서드를 만드는게 좋은지 궁금합니다.
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Dto 관련해서 질문드립니다!
안녕하세요! 로드맵 따라서 좋은 강의 잘 듣고 있습니다. 실제 프로젝트를 진행하면서도 들었던 의문인데 생성, 수정과 같은 역할이 다른 Dto이지만 동일한 값을 가져가는 Dto가 많이 생성되는 것을 느끼게 되었습니다. 실제 실무에서는 이런 경우 Dto를 어떻게 처리하시는지 궁금합니다! 동일하게 쓰이는 값들을 한 곳으로 모아 상속을 통해 하위 Dto를 만드는 방법도 생각해보았는데 이런 방법은 어떤지 궁금합니다.
- 미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
OSIV 질문드립니다.
OSIV가 false일때, createOrder의 param으로 맴버넣을경우에 맴버를 member.findBy로 조회하고 넣잖아요? 이때 Member엔티티에서 @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); 이렇게 오더가 프록시로 들어가있으니 선생님은 어떤식으로 초기화를 하시나요? orders could not initialize proxy - no Session 요렇게 나오는데.. 다른 Member는 겟네임으로 초기화한다고하는데 orders는 리스트니까.. 궁금해서요 ㅠㅠ