묻고 답해요
138만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
쓰기지연SQL저장소는 정말 스냅샷과 비교하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)CrudRepository의 Save 함수는 파라미터로 전달받은 객체의 PK컬럼의 값 존재 유무에 따라서 값이 없을 경우 persist 함수를 이용해, 값이 있을 경우 merge 함수를 통해 객체를 영속화 하는 메서드로 이해 하고 있습니다. 우선 저는 이러한 엔티티를 가지고 있습니다.package my.test.testproject.domain; import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import javax.persistence.*; @Entity @Getter @Setter @ToString @Table(name = "person") @DynamicInsert @DynamicUpdate public class Person { @Id Long id; String name; public Person() { } public Person(Long id, String name) { this.id = id; this.name = name; } }그리고 이러한 코드가 실행이 됩니다@Test @Transactional void PersonTest9() { Person person = new Person(300L, "Firmino"); personRepository.save(person); }참고로 Id가 300인 데이터는 이미 실제 데이터베이스에 존재하고 있습니다.이 경우에 save를 호출할 경우 PK값이 존재하기에 merge를 호출하고 객체가 영속화 되어서 트랜잭션이 커밋되면 변경감지를 통해 쓰기지연SQL저장소에 SQL이 생성이 될텐데 바로 이 SQL이 생성되는 과정에서 궁금한 점이 있습니다. 이 트랜잭션에서 Id가 300인 엔티티가 처음 영속화 되었습니다. 쓰기지연 SQL저장소에 SQL을 생성할때 스냅샷과 비교해서 SQL을 생성하는것으로 알고 있는데 그렇다면 이경우에는 제 예상에는 Insert 쿼리가 생성이 되어서 실행시 에러가 나야할것 같은데 실제로 실행을 해보면 select쿼리가 실행됩니다Hibernate: select person0_.id as id1_1_0_, person0_.name as name2_1_0_ from person person0_ where person0_.id=?결국 PK에 값이 있는 엔티티가 merge를 통해서 영속화 되었을때 이것을 쓰기지연 SQL저장소에 SQL을 만들때 스냅샷이 아닌 실제 데이터베이스와 비교해서 쿼리를 생성하는 것입니까? 제가 잘못 이해하고 있는 부분들이 있다면 알려주시기 바랍니다ㅠㅠ
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시의 특징 질문
안녕하세요! 영한님질문 드립니다. 질문 1)만약 동일한 트랜잭션안에서 처음에 em.getReference()를 사용하면 프록시 객체를 반환하고, em.find()를 사용해도 프록시 객체를 반환한다.반대의 경우 동일한 트랜잭션안에서 처음에 em.find()를 사용하면 실제 엔티티가 반환되고, em.getReference()를 사용해도 실제 엔티티를 반환한다.제가 이해한게 맞을까요? 질문 2) em.getReference() 를 사용하여 프록시 객체를 조회한 프록시 객체도 결국 EntityManager를 사용하여 조회한 것이기 때문에 영속성 컨텍스트에서 관리되는 것 같은데 맞을까요? 감사합니다.^^
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
offset 과 limit 값을 서버쪽으로 보내는 방식
안녕하세요강의에서는 페이징에 필요한 offset과 limit 값을 @RequestParam을 통해서 넘겨주는 것을 보았습니다. 그런데, 저는 현재 @RequestBody OrderSearchDto를 파라미터로 받아와 내부 필드인 멤버명이나 주문 상태를 검색조건으로 활용하고 있었습니다.이런 경우에는 그냥 @RequestParam을 사용하지 않고, DTO에 offset과 limit 필드를 추가해서 검색과 페이징에 필요한 데이터를 OrderSearchDto 안에 한번에 받는것은 어떤지 궁금합니다.보통 실무에서는 페이징에 필요한 값은 @RequestParam으로 받는 편인가요? 아니면 저의 발상처럼 OrderSearchDto 같은 DTO를 통해 @RequestBody로 받기도 하나요? 일반적인 관점에서 best practice가 따로 있는지 궁금합니다.
-
미해결실전! 스프링 데이터 JPA
강의 들으면서 응용해서 테스트를 작성하고 있는데 자꾸 null인 상태라고 해서 질문드립니다.
강의를 들으면서 간단한 테스트 문을 작성해봤습니다. 근데 계속 NullPointerException이 발생해서 여러가지 테스트를 하면서 오류를 분석해보니answerList에 아무 값도 들어가지 않아서 자꾸 null이라고 뜨는데 대체 왜 그런지 모르겠어서 질문드립니다.아래에는 오류 화면이고 Question, Answer 엔티티와 함께테스트 코드도 같이 첨부하겠습니다.@Entity @Getter @Setter public class Question { @Id @GeneratedValue @Column(name = "question_id") private Long id; @Column(unique = true, length = 200) private String subject; @Column(unique = true, columnDefinition = "TEXT") private String content; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "question", cascade = CascadeType.REMOVE) private List<Answer> answerList; private LocalDateTime createDate; }@Entity @Getter @Setter public class Answer { @Id @GeneratedValue @Column(name = "answer_id") private Long id; @Column(columnDefinition = "TEXT") private String content; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "question_id") private Question question; private LocalDateTime createDate; }@SpringBootTest @Transactional class AnswerRepositoryTest { @Autowired private QuestionRepository questionRepository; @Autowired private AnswerRepository answerRepository; @Test public void 답변조회() throws Exception{ //given Question question = new Question(); question.setSubject("제목입니다."); question.setContent("본문입니다."); questionRepository.save(q); Question findQuestion = questionRepository.findById(question.getId()).get(); Answer answer = new Answer(); answer.setContent("답변입니다."); answer.setQuestion(findQuestion); answer.setCreateDate(LocalDateTime.now()); answerRepository.save(answer); //when List<Answer> answerList = findQuestion.getAnswerList(); //then assertEquals("답변입니다.",answerList.get(0).getContent()); } }테스트 코드에서 findQuestion.getSubject/ findQuestion.getContent까지 다 잘 찾아지는데딱 getAnswerList()만 하면 null이라고 뜹니다
-
미해결실전! 스프링 데이터 JPA
페이징 질문입니다!!
영환님 항상 강의를 듣다가 궁금증이 있어 질문을 드립니다.페이징 부분에서 Pageable를 파라미터와 응답값으로 그대로 사용하는 부분이 있습니다.응답으로 Pageable를 그대로 사용하게 되면 Pageable객체와 last, totalPages 등이 전부 응답값으로 설정되게 되는데, 보통 실무에서나 프로젝트에서도 그대로 사용하나요?! 응답 값에서 필요한 부분만 추출해서 사용하는게 좋지 않나요? ("Page를 1부터 시작하기" 말고)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
application.yml url설정
url: jdbc:h2:tcp://localhost/~/jpashop요 부분에서 jpashop이 그냥 h2콘솔에서 설정한 이름이랑 서로 맞기만하면 되는건가요?아니면 처음 프로젝트를 생성할때 설정한 groupid나 artifactid랑 맞춰야 하는건가요?
-
미해결실전! Querydsl
join()를 작성하지 않아도 자동으로 join을 해주는데 join()을 써주는 이유
join()를 작성하지 않아도 자동으로 join을 해주는데 join()을 써주는 이유가 궁금합니다. @Test public void group() { List<Tuple> result = queryFactory .select(member.team.name, member.age.avg()) .from(member) // .join(member.team, team) .groupBy(member.team.name) .fetch(); Tuple teamA = result.get(0); Tuple teamB = result.get(1); assertThat(teamA.get(member.team.name)).isEqualTo("teamA"); assertThat(teamA.get(member.age.avg())).isEqualTo(15); //10, 20 assertThat(teamB.get(member.team.name)).isEqualTo("teamB"); assertThat(teamB.get(member.age.avg())).isEqualTo(35); //30, 40 }제가 위와 같이 코드를 수정하여 돌려봤는데 테스트를 잘 통과하였고 생성된 sql에서도 join을 자동으로 해주었습니다. 따로 join()을 쓰신 이유가 있을까요?
-
미해결실전! 스프링 데이터 JPA
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 복습 중 궁금한 부분이 있어 질문 드립니다. H2 데이터베이스를 실행하지 않더라도 스프링 내부 DB 에서 테스트가 가능하다고 하셨는데 스프링 내부적으로 H2 DB 를 사용하는 건가요? 그 데이터들은 어느 위치에 보관이 되고 있는지 휘발성인지도 궁금합니다 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
testdb 궁금증.
저는 testdb 라고 안뜨고url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|이렇게 나오는데, 같은 맥락인가요? --전체 콘솔--/Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Home/bin/java -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=54927:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/junit/lib/junit5-rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/junit/lib/junit-rt.jar:/Users/hyoozo/Documents/study/jpashop/out/test/classes:/Users/hyoozo/Documents/study/jpashop/out/test/resources:/Users/hyoozo/Documents/study/jpashop/out/production/classes:/Users/hyoozo/Documents/study/jpashop/out/production/resources:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-data-jpa/3.0.2/fc0dbe82effb33d3d89b4cf2ec6b7968ad2af558/spring-boot-starter-data-jpa-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-thymeleaf/3.0.2/e79481a7c3984941b9f9c73271867e4fcb4c0cc5/spring-boot-starter-thymeleaf-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-web/3.0.2/3f6a2cb4cb11bac3611f5a95e234589eb190dd29/spring-boot-starter-web-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-devtools/3.0.2/8e74cf503d8f8b66960ecf3780446c5750866aa6/spring-boot-devtools-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.github.gavlyukovskiy/p6spy-spring-boot-starter/1.5.6/495579c7fb01b005f19ec4d5188245c66de0937b/p6spy-spring-boot-starter-1.5.6.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.22/9c08ea24c6eb714e2d6170e8122c069a0ba9aacf/lombok-1.18.22.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.testng/testng/7.1.0/b0bcea778fb2899aeb4014c558babea8833d180a/testng-7.1.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-test/3.0.2/167ec01ebb1d4d5f955aa25e027fe25336116925/spring-boot-starter-test-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.junit.vintage/junit-vintage-engine/5.9.2/53421816bde124a564a64ba005dcc0c8e66a9722/junit-vintage-engine-5.9.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-aop/3.0.2/cfb3ff6a7f8d47c9703f140387f39a837b81ab52/spring-boot-starter-aop-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-jdbc/3.0.2/662285456edce14301de88fc0ab4937643a51b50/spring-boot-starter-jdbc-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.hibernate.orm/hibernate-core/6.1.6.Final/e2ff7dfc50d16377da7bedbf48a0a2e9db30ac66/hibernate-core-6.1.6.Final.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-jpa/3.0.1/96f4ea7c780b6c902f83f4fd3c98dffe3ac5fbec/spring-data-jpa-3.0.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aspects/6.0.4/5baf7a2260278ca9748be9dd8278d6519ff2da00/spring-aspects-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter/3.0.2/a9426629b5a83ad64fbe4e1d24081cccf4cdab14/spring-boot-starter-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.thymeleaf/thymeleaf-spring6/3.1.1.RELEASE/deb52ef921a4ac5132fedb7ebfc2bc1dad4382b3/thymeleaf-spring6-3.1.1.RELEASE.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-json/3.0.2/11b9a2903af9014696d2576605bb73e8bca6ee19/spring-boot-starter-json-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-tomcat/3.0.2/4d50f0cdcb4b8f74221ae823dd77c18290473045/spring-boot-starter-tomcat-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-webmvc/6.0.4/84ee8a9107480c92186ef8216ba0e1dca6ee1665/spring-webmvc-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/6.0.4/de18e3e75a0e56534d9df5978bd2f43f950e1b4a/spring-web-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/3.0.2/42ad589ec930e05a2ed702a4940955ff97b16a8c/spring-boot-autoconfigure-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/3.0.2/69d2e0a07f7df180a4aacdc47c47a3db656857dc/spring-boot-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.github.gavlyukovskiy/datasource-decorator-spring-boot-autoconfigure/1.5.6/cac386fe9df77870133594f054ee32e5d08ab93d/datasource-decorator-spring-boot-autoconfigure-1.5.6.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/p6spy/p6spy/3.8.2/52299d9a1ec2bc2fb8b1a21cc12dfc1a7c033caf/p6spy-3.8.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.beust/jcommander/1.72/6375e521c1e11d6563d4f25a07ce124ccf8cd171/jcommander-1.72.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.google.inject/guice/4.1.0/faf9ee8ac09eafd1128091426dd367a8c0085d55/guice-4.1.0-no_aop.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.33/2cd0a87ff7df953f810c344bdf2fe3340b954c69/snakeyaml-1.33.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter/5.9.2/26c586fbe0ebd81b48c9f11f0d998124248697ae/junit-jupiter-5.9.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test-autoconfigure/3.0.2/54b535d617cd5dce97b520f6224ef10a76b4a32a/spring-boot-test-autoconfigure-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test/3.0.2/b014e6596a04ce4aa374ca3cd6361489afab8680/spring-boot-test-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.jayway.jsonpath/json-path/2.7.0/f9d7d9659f2694e61142046ff8a216c047f263e8/json-path-2.7.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-api/4.0.0/bbb399208d288b15ec101fa4fcfc4bd77cedc97a/jakarta.xml.bind-api-4.0.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.23.1/d2bb60570f5b3d7ffa8f8000118c9c07b86eca93/assertj-core-3.23.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-2.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-junit-jupiter/4.8.1/e393aa62eca2244a535b03842843f2f199343d1f/mockito-junit-jupiter-4.8.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/4.8.1/d8eb9dec8747d08645347bb8c69088ac83197975/mockito-core-4.8.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.skyscreamer/jsonassert/1.5.1/6d842d0faf4cf6725c509a5e5347d319ee0431c3/jsonassert-1.5.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/6.0.4/e8a07171dc49379f7091fdafd62d71c0ca5333a0/spring-test-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/6.0.4/8e24ad493887023cf5fac93541c72516f8ed9f6a/spring-core-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.xmlunit/xmlunit-core/2.9.1/e5833662d9a1279a37da3ef6f62a1da29fcd68c4/xmlunit-core-2.9.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-engine/1.9.2/40aeef2be7b04f96bb91e8b054affc28b7c7c935/junit-platform-engine-1.9.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/junit/junit/4.13.2/8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12/junit-4.13.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.apiguardian/apiguardian-api/1.1.2/a231e0d844d2721b0fa1b238006d15c6ded6842a/apiguardian-api-1.1.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/6.0.4/c47b65c09a5a6fc41293b6aa981fcbe24a3adcd0/spring-aop-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.aspectj/aspectjweaver/1.9.19/afbffb1210239fbba5cad73093c5b216d515838f/aspectjweaver-1.9.19.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/6.0.4/97304a02dec542762c19a7b39e1124f1714f7be9/spring-jdbc-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.zaxxer/HikariCP/5.0.1/a74c7f0a37046846e88d54f7cb6ea6d565c65f9c/HikariCP-5.0.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/jakarta.persistence/jakarta.persistence-api/3.1.0/66901fa1c373c6aff65c13791cc11da72060a8d6/jakarta.persistence-api-3.1.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/jakarta.transaction/jakarta.transaction-api/2.0.1/51a520e3fae406abb84e2e1148e6746ce3f80a1a/jakarta.transaction-api-2.0.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/6.0.4/4fffcbb7eb4f1e9f1a4c9d3ca60098f7c063fc05/spring-context-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-orm/6.0.4/c9958d0879bdc05f7221c0b49d90a1b8825da540/spring-orm-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/3.0.1/a748e9d73fe23bec3a8604c68da74446a887d59/spring-data-commons-3.0.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-tx/6.0.4/f8a50c2547179328a5f2202591d6341e3cbf1708/spring-tx-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/6.0.4/7d903607ecfcdefccd0d48aea8724632479b3e83/spring-beans-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/2.1.1/48b9bda22b091b1f48b13af03fe36db3be6e1ae3/jakarta.annotation-api-2.1.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.6/88c40d8b4f33326f19a7d3c0aaf2c7e8721d4953/slf4j-api-2.0.6.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-logging/3.0.2/1c5c71058a0297534d5c5f33a5d125bbbdb6a390/spring-boot-starter-logging-3.0.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.thymeleaf/thymeleaf/3.1.1.RELEASE/374a129dfa5e7d7f1a46eacc4d49e594ca0cf26f/thymeleaf-3.1.1.RELEASE.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.14.1/f24e8cb1437e05149b7a3049ebd6700f42e664b1/jackson-datatype-jsr310-2.14.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-parameter-names/2.14.1/2e05a86dba3d4b05074b6a313c4d5b7ff844c8dd/jackson-module-parameter-names-2.14.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.14.1/da194197d187bf24a8699514344ebf0abd7c342a/jackson-datatype-jdk8-2.14.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.14.1/268524b9056cae1211b9f1f52560ef19347f4d17/jackson-databind-2.14.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-websocket/10.1.5/14529cbd593571dc9029272ddc9166b5ef113fc2/tomcat-embed-websocket-10.1.5.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/10.1.5/21417d3ef8189e2af05aae0a765ad9204d7211b5/tomcat-embed-core-10.1.5.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-el/10.1.5/c125df13af42a0fc0cd342370449b1276181e2a1/tomcat-embed-el-10.1.5.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/6.0.4/a908e6d3c46fcd6b58221d8427bbaf284bbbee0c/spring-expression-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-observation/1.10.3/32cc59dc8b5f00fba9fa88b7139898b0f7905db7/micrometer-observation-1.10.3.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/aopalliance/aopalliance/1.0/235ba8b489512805ac13a8f9ea77a1ca5ebe3e8/aopalliance-1.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/19.0/6ce200f6b23222af3d8abb6b6459e6c44f4bb0e9/guava-19.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-params/5.9.2/bc2765afb7b85b583c710dd259a11c6b8c39e912/junit-jupiter-params-5.9.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-api/5.9.2/fed843581520eac594bc36bb4b0f55e7b947dda9/junit-jupiter-api-5.9.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/net.minidev/json-smart/2.4.8/7c62f5f72ab05eb54d40e2abf0360a2fe9ea477f/json-smart-2.4.8.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/jakarta.activation/jakarta.activation-api/2.1.1/88c774ab863a21fb2fc4219af95379fafe499a31/jakarta.activation-api-2.1.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.12.22/984e536b4f3fb668b21f15b90c1e8704292d4bdd/byte-buddy-1.12.22.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.12.22/9c4127080df12304336ca90c2ef3f8b7d72915c1/byte-buddy-agent-1.12.22.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.vaadin.external.google/android-json/0.0.20131108.vaadin1/fa26d351fe62a6a17f5cda1287c1c6110dec413f/android-json-0.0.20131108.vaadin1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/6.0.4/2d6523d00fc40cdb2c2f409113447940d2c872b5/spring-jcl-6.0.4.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-commons/1.9.2/6f9f8621d8230cd38aa42e58ccbc0c00569131ce/junit-platform-commons-1.9.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.2.0/28c11eb91f9b6d8e200631d46e20a7f407f2a046/opentest4j-1.2.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.4.5/28e7dc0b208d6c3f15beefd73976e064b4ecfa9b/logback-classic-1.4.5.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-to-slf4j/2.19.0/30f4812e43172ecca5041da2cb6b965cc4777c19/log4j-to-slf4j-2.19.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.slf4j/jul-to-slf4j/2.0.6/c4d348977a83a0bfcf42fd6fd1fee6e7904f1a0c/jul-to-slf4j-2.0.6.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.attoparser/attoparser/2.0.6.RELEASE/8f603f22a18d4f7258f8860ccbb68b069f49904a/attoparser-2.0.6.RELEASE.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.unbescape/unbescape/1.1.6.RELEASE/7b90360afb2b860e09e8347112800d12c12b2a13/unbescape-1.1.6.RELEASE.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.14.1/2a6ad504d591a7903ffdec76b5b7252819a2d162/jackson-annotations-2.14.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.14.1/7a07bc535ccf0b7f6929c4d0f2ab9b294ef7c4a3/jackson-core-2.14.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-commons/1.10.3/334080a1a6b849d09d3ef96d7b243fc3c16b2e5a/micrometer-commons-1.10.3.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/net.minidev/accessors-smart/2.4.8/6e1bee5a530caba91893604d6ab41d0edcecca9a/accessors-smart-2.4.8.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.4.5/e9bb2ea70f84401314da4300343b0a246c8954da/logback-core-1.4.5.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.19.0/ea1b37f38c327596b216542bc636cfdc0b8036fa/log4j-api-2.19.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.1/a99500cf6eea30535eeac6be73899d048f8d12a8/asm-9.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.h2database/h2/2.1.214/d5c2005c9e3279201e12d4776c948578b16bf8b2/h2-2.1.214.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/4.0.1/7abfa1ee788a8f090dc598c45876ef068731e72b/jaxb-runtime-4.0.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss-logging/3.5.0.Final/c19307cc11f28f5e2679347e633a3294d865334d/jboss-logging-3.5.0.Final.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.hibernate.common/hibernate-commons-annotations/6.0.2.Final/fa5a14ef3d2e5c3c99b53a4bef756a3268d69187/hibernate-commons-annotations-6.0.2.Final.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.jboss/jandex/2.4.2.Final/1e1c385990b258ff1a24c801e84aebbacf70eb39/jandex-2.4.2.Final.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.fasterxml/classmate/1.5.1/3fe0bed568c62df5e89f4f174c101eab25345b6c/classmate-1.5.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/jakarta.inject/jakarta.inject-api/2.0.0/46fc8560b6fd17b78396d88f39c1a730457671f0/jakarta.inject-api-2.0.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4-runtime/4.10.1/10839f875928f59c622d675091d51a43ea0dc5f7/antlr4-runtime-4.10.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-engine/5.9.2/572f7a553b53f83ee59cc045ce1c3772864ab76c/junit-jupiter-engine-5.9.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.objenesis/objenesis/3.2/7fadf57620c8b8abdf7519533e5527367cb51f09/objenesis-3.2.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-core/4.0.1/b4707bb31dfcf54ae424b930741f0cd62d672af9/jaxb-core-4.0.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.eclipse.angus/angus-activation/1.0.0/f0ceddd49f92109fbfad9125e958f5bfd3f2aa1/angus-activation-1.0.0.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/4.0.1/797720dfe2e15504f6014fb82eb873051a653c75/txw2-4.0.1.jar:/Users/hyoozo/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/4.1.1/9b3769c76235bc283b060da4fae2318c6d53f07e/istack-commons-runtime-4.1.1.jar com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 jpabook.jpashop.service.MemberServiceTest01:50:34.324 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [MemberServiceTest]: using SpringBootContextLoader01:50:34.335 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [jpabook.jpashop.service.MemberServiceTest]: no resource found for suffixes {-context.xml, Context.groovy}.01:50:34.343 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [jpabook.jpashop.service.MemberServiceTest]: MemberServiceTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.01:50:34.451 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using ContextCustomizers for test class [MemberServiceTest]: [DisableObservabilityContextCustomizer, PropertyMappingContextCustomizer, Customizer, ExcludeFilterContextCustomizer, DuplicateJsonObjectContextCustomizer, MockitoContextCustomizer, TestRestTemplateContextCustomizer]01:50:35.064 [main] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [/Users/hyoozo/Documents/study/jpashop/out/production/classes/jpabook/jpashop/JpashopApplication.class]01:50:35.067 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration jpabook.jpashop.JpashopApplication for test class jpabook.jpashop.service.MemberServiceTest01:50:35.509 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners for test class [MemberServiceTest]: [ServletTestExecutionListener, DirtiesContextBeforeModesTestExecutionListener, ApplicationEventsTestExecutionListener, MockitoTestExecutionListener, DependencyInjectionTestExecutionListener, DirtiesContextTestExecutionListener, TransactionalTestExecutionListener, SqlScriptsTestExecutionListener, EventPublishingTestExecutionListener, RestDocsTestExecutionListener, MockRestServiceServerResetTestExecutionListener, MockMvcPrintOnlyOnFailureTestExecutionListener, WebDriverTestExecutionListener, MockWebServiceServerTestExecutionListener, ResetMocksTestExecutionListener]01:50:35.516 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [jpabook.jpashop.service.MemberServiceTest]01:50:35.522 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [jpabook.jpashop.service.MemberServiceTest]01:50:35.529 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [jpabook.jpashop.service.MemberServiceTest]01:50:35.530 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [jpabook.jpashop.service.MemberServiceTest]01:50:35.530 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [jpabook.jpashop.service.MemberServiceTest]01:50:35.530 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [jpabook.jpashop.service.MemberServiceTest]01:50:35.555 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [jpabook.jpashop.service.MemberServiceTest]01:50:35.558 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [jpabook.jpashop.service.MemberServiceTest]01:50:35.560 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [jpabook.jpashop.service.MemberServiceTest]01:50:35.561 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [jpabook.jpashop.service.MemberServiceTest]01:50:35.562 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [jpabook.jpashop.service.MemberServiceTest]01:50:35.562 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [jpabook.jpashop.service.MemberServiceTest]01:50:35.571 [main] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: class [MemberServiceTest], class annotated with @DirtiesContext [false] with mode [null]01:50:35.573 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [jpabook.jpashop.service.MemberServiceTest]01:50:35.574 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [jpabook.jpashop.service.MemberServiceTest] . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.0.2)2023-02-21T01:50:37.029+09:00 INFO 19303 --- [ main] j.jpashop.service.MemberServiceTest : Starting MemberServiceTest using Java 17.0.5 with PID 19303 (started by hyoozo in /Users/hyoozo/Documents/study/jpashop)2023-02-21T01:50:37.037+09:00 INFO 19303 --- [ main] j.jpashop.service.MemberServiceTest : No active profile set, falling back to 1 default profile: "default"2023-02-21T01:50:38.911+09:00 INFO 19303 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2023-02-21T01:50:39.024+09:00 INFO 19303 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 44 ms. Found 0 JPA repository interfaces.2023-02-21T01:50:40.264+09:00 INFO 19303 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2023-02-21T01:50:40.752+09:00 INFO 19303 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37 user=SA2023-02-21T01:50:40.754+09:00 INFO 19303 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2023-02-21T01:50:40.845+09:00 INFO 19303 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2023-02-21T01:50:40.970+09:00 INFO 19303 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.1.6.Final2023-02-21T01:50:41.440+09:00 WARN 19303 --- [ main] org.hibernate.orm.deprecation : HHH90000021: Encountered deprecated setting [javax.persistence.sharedCache.mode], use [jakarta.persistence.sharedCache.mode] instead2023-02-21T01:50:41.773+09:00 INFO 19303 --- [ main] SQL dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect2023-02-21T01:50:42.396+09:00 INFO 19303 --- [ main] p6spy : 1676911842396|16|statement|connection 2|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|select from INFORMATION_SCHEMA.SEQUENCES|select from INFORMATION_SCHEMA.SEQUENCES2023-02-21T01:50:43.895+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop table if exists category cascade 2023-02-21T01:50:43.897+09:00 INFO 19303 --- [ main] p6spy : 1676911843897|1|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists category cascade |drop table if exists category cascade 2023-02-21T01:50:43.898+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop table if exists category_item cascade 2023-02-21T01:50:43.899+09:00 INFO 19303 --- [ main] p6spy : 1676911843899|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists category_item cascade |drop table if exists category_item cascade 2023-02-21T01:50:43.899+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop table if exists delivery cascade 2023-02-21T01:50:43.899+09:00 INFO 19303 --- [ main] p6spy : 1676911843899|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists delivery cascade |drop table if exists delivery cascade 2023-02-21T01:50:43.900+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop table if exists item cascade 2023-02-21T01:50:43.901+09:00 INFO 19303 --- [ main] p6spy : 1676911843900|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists item cascade |drop table if exists item cascade 2023-02-21T01:50:43.901+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop table if exists member cascade 2023-02-21T01:50:43.902+09:00 INFO 19303 --- [ main] p6spy : 1676911843902|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists member cascade |drop table if exists member cascade 2023-02-21T01:50:43.902+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop table if exists order_item cascade 2023-02-21T01:50:43.902+09:00 INFO 19303 --- [ main] p6spy : 1676911843902|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists order_item cascade |drop table if exists order_item cascade 2023-02-21T01:50:43.903+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop table if exists orders cascade 2023-02-21T01:50:43.903+09:00 INFO 19303 --- [ main] p6spy : 1676911843903|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists orders cascade |drop table if exists orders cascade 2023-02-21T01:50:43.904+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop sequence if exists category_seq2023-02-21T01:50:43.905+09:00 INFO 19303 --- [ main] p6spy : 1676911843905|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists category_seq|drop sequence if exists category_seq2023-02-21T01:50:43.905+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop sequence if exists delivery_seq2023-02-21T01:50:43.906+09:00 INFO 19303 --- [ main] p6spy : 1676911843906|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists delivery_seq|drop sequence if exists delivery_seq2023-02-21T01:50:43.907+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop sequence if exists item_seq2023-02-21T01:50:43.907+09:00 INFO 19303 --- [ main] p6spy : 1676911843907|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists item_seq|drop sequence if exists item_seq2023-02-21T01:50:43.908+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop sequence if exists member_seq2023-02-21T01:50:43.908+09:00 INFO 19303 --- [ main] p6spy : 1676911843908|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists member_seq|drop sequence if exists member_seq2023-02-21T01:50:43.909+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop sequence if exists order_item_seq2023-02-21T01:50:43.910+09:00 INFO 19303 --- [ main] p6spy : 1676911843910|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists order_item_seq|drop sequence if exists order_item_seq2023-02-21T01:50:43.910+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : drop sequence if exists orders_seq2023-02-21T01:50:43.911+09:00 INFO 19303 --- [ main] p6spy : 1676911843911|0|statement|connection 3|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists orders_seq|drop sequence if exists orders_seq2023-02-21T01:50:43.921+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create sequence category_seq start with 1 increment by 502023-02-21T01:50:43.924+09:00 INFO 19303 --- [ main] p6spy : 1676911843923|1|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|create sequence category_seq start with 1 increment by 50|create sequence category_seq start with 1 increment by 502023-02-21T01:50:43.924+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create sequence delivery_seq start with 1 increment by 502023-02-21T01:50:43.925+09:00 INFO 19303 --- [ main] p6spy : 1676911843925|0|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|create sequence delivery_seq start with 1 increment by 50|create sequence delivery_seq start with 1 increment by 502023-02-21T01:50:43.925+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create sequence item_seq start with 1 increment by 502023-02-21T01:50:43.926+09:00 INFO 19303 --- [ main] p6spy : 1676911843926|0|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|create sequence item_seq start with 1 increment by 50|create sequence item_seq start with 1 increment by 502023-02-21T01:50:43.926+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create sequence member_seq start with 1 increment by 502023-02-21T01:50:43.927+09:00 INFO 19303 --- [ main] p6spy : 1676911843926|0|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|create sequence member_seq start with 1 increment by 50|create sequence member_seq start with 1 increment by 502023-02-21T01:50:43.927+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create sequence order_item_seq start with 1 increment by 502023-02-21T01:50:43.928+09:00 INFO 19303 --- [ main] p6spy : 1676911843928|0|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|create sequence order_item_seq start with 1 increment by 50|create sequence order_item_seq start with 1 increment by 502023-02-21T01:50:43.930+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create sequence orders_seq start with 1 increment by 502023-02-21T01:50:43.933+09:00 INFO 19303 --- [ main] p6spy : 1676911843933|2|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|create sequence orders_seq start with 1 increment by 50|create sequence orders_seq start with 1 increment by 502023-02-21T01:50:43.937+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create table category (category_id bigint not null, name varchar(255), parent_id bigint, primary key (category_id))2023-02-21T01:50:43.946+09:00 INFO 19303 --- [ main] p6spy : 1676911843946|8|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|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))2023-02-21T01:50:43.947+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create table category_item (category_id bigint not null, item_id bigint not null)2023-02-21T01:50:43.949+09:00 INFO 19303 --- [ main] p6spy : 1676911843949|1|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|create table category_item (category_id bigint not null, item_id bigint not null)|create table category_item (category_id bigint not null, item_id bigint not null)2023-02-21T01:50:43.949+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create table delivery (delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status varchar(255), primary key (delivery_id))2023-02-21T01:50:43.954+09:00 INFO 19303 --- [ main] p6spy : 1676911843953|4|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|create table delivery (delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status varchar(255), primary key (delivery_id))|create table delivery (delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status varchar(255), primary key (delivery_id))2023-02-21T01:50:43.954+09:00 DEBUG 19303 --- [ main] 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))2023-02-21T01:50:43.957+09:00 INFO 19303 --- [ main] p6spy : 1676911843957|2|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|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))2023-02-21T01:50:43.957+09:00 DEBUG 19303 --- [ main] 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))2023-02-21T01:50:43.960+09:00 INFO 19303 --- [ main] p6spy : 1676911843959|1|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|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))2023-02-21T01:50:43.960+09:00 DEBUG 19303 --- [ main] 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))2023-02-21T01:50:43.962+09:00 INFO 19303 --- [ main] p6spy : 1676911843962|1|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|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))2023-02-21T01:50:43.962+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : create table orders (order_id bigint not null, order_date timestamp(6), status varchar(255), delivery_id bigint, member_id bigint, primary key (order_id))2023-02-21T01:50:43.964+09:00 INFO 19303 --- [ main] p6spy : 1676911843964|1|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|create table orders (order_id bigint not null, order_date timestamp(6), status varchar(255), delivery_id bigint, member_id bigint, primary key (order_id))|create table orders (order_id bigint not null, order_date timestamp(6), status varchar(255), delivery_id bigint, member_id bigint, primary key (order_id))2023-02-21T01:50:43.965+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : alter table if exists category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category2023-02-21T01:50:43.986+09:00 INFO 19303 --- [ main] p6spy : 1676911843986|20|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|alter table if exists category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category|alter table if exists category add constraint FK2y94svpmqttx80mshyny85wqr foreign key (parent_id) references category2023-02-21T01:50:43.986+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : alter table if exists category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item2023-02-21T01:50:43.989+09:00 INFO 19303 --- [ main] p6spy : 1676911843989|3|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|alter table if exists category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item|alter table if exists category_item add constraint FKu8b4lwqutcdq3363gf6mlujq foreign key (item_id) references item2023-02-21T01:50:43.990+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : alter table if exists category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category2023-02-21T01:50:43.992+09:00 INFO 19303 --- [ main] p6spy : 1676911843992|2|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|alter table if exists category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category|alter table if exists category_item add constraint FKcq2n0opf5shyh84ex1fhukcbh foreign key (category_id) references category2023-02-21T01:50:43.992+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : alter table if exists order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item2023-02-21T01:50:43.995+09:00 INFO 19303 --- [ main] p6spy : 1676911843994|1|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|alter table if exists order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item|alter table if exists order_item add constraint FKija6hjjiit8dprnmvtvgdp6ru foreign key (item_id) references item2023-02-21T01:50:43.995+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : alter table if exists order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders2023-02-21T01:50:43.997+09:00 INFO 19303 --- [ main] p6spy : 1676911843997|2|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|alter table if exists order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders|alter table if exists order_item add constraint FKt4dc2r9nbvbujrljv3e23iibt foreign key (order_id) references orders2023-02-21T01:50:43.998+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : alter table if exists orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery2023-02-21T01:50:44.000+09:00 INFO 19303 --- [ main] p6spy : 1676911844000|2|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|alter table if exists orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery|alter table if exists orders add constraint FKtkrur7wg4d8ax0pwgo0vmy20c foreign key (delivery_id) references delivery2023-02-21T01:50:44.000+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : alter table if exists orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member2023-02-21T01:50:44.005+09:00 INFO 19303 --- [ main] p6spy : 1676911844005|4|statement|connection 4|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|alter table if exists orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member|alter table if exists orders add constraint FKpktxwhj3x9m4gth5ff6bkqgeb foreign key (member_id) references member2023-02-21T01:50:44.009+09:00 INFO 19303 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]2023-02-21T01:50:44.026+09:00 INFO 19303 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2023-02-21T01:50:44.445+09:00 WARN 19303 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning2023-02-21T01:50:44.884+09:00 INFO 19303 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]2023-02-21T01:50:45.303+09:00 INFO 19303 --- [ main] j.jpashop.service.MemberServiceTest : Started MemberServiceTest in 9.615 seconds (process running for 13.008)2023-02-21T01:50:46.493+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.name=?2023-02-21T01:50:46.504+09:00 INFO 19303 --- [ main] p6spy : 1676911846504|0|statement|connection 5|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.name=?|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.name='kim'2023-02-21T01:50:46.529+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : select next value for member_seq2023-02-21T01:50:46.539+09:00 INFO 19303 --- [ main] p6spy : 1676911846539|2|statement|connection 5|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|select next value for member_seq|select next value for member_seq2023-02-21T01:50:46.611+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : insert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)2023-02-21T01:50:46.614+09:00 INFO 19303 --- [ main] p6spy : 1676911846614|1|statement|connection 5|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|insert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)|insert into member (city, street, zipcode, name, member_id) values (NULL, NULL, NULL, 'kim', 1)2023-02-21T01:50:46.624+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.name=?2023-02-21T01:50:46.626+09:00 INFO 19303 --- [ main] p6spy : 1676911846625|0|statement|connection 5|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.name=?|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.name='kim'2023-02-21T01:50:46.650+09:00 INFO 19303 --- [ main] p6spy : 1676911846649|1|rollback|connection 5|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37||2023-02-21T01:50:46.673+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.name=?2023-02-21T01:50:46.675+09:00 INFO 19303 --- [ main] p6spy : 1676911846675|0|statement|connection 6|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.name=?|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.name='kim'2023-02-21T01:50:46.676+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : select next value for member_seq2023-02-21T01:50:46.676+09:00 INFO 19303 --- [ main] p6spy : 1676911846676|0|statement|connection 6|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|select next value for member_seq|select next value for member_seq2023-02-21T01:50:46.696+09:00 DEBUG 19303 --- [ main] org.hibernate.SQL : insert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)2023-02-21T01:50:46.697+09:00 INFO 19303 --- [ main] p6spy : 1676911846697|0|statement|connection 6|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|insert into member (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)|insert into member (city, street, zipcode, name, member_id) values (NULL, NULL, NULL, 'kim', 2)2023-02-21T01:50:46.699+09:00 INFO 19303 --- [ main] p6spy : 1676911846699|0|commit|connection 6|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37||2023-02-21T01:50:46.726+09:00 INFO 19303 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'2023-02-21T01:50:46.729+09:00 INFO 19303 --- [ionShutdownHook] .SchemaDropperImpl$DelayedDropActionImpl : HHH000477: Starting delayed evictData of schema as part of SessionFactory shut-down'2023-02-21T01:50:46.730+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop table if exists category cascade 2023-02-21T01:50:46.745+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846745|13|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists category cascade |drop table if exists category cascade 2023-02-21T01:50:46.745+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop table if exists category_item cascade 2023-02-21T01:50:46.752+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846752|7|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists category_item cascade |drop table if exists category_item cascade 2023-02-21T01:50:46.753+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop table if exists delivery cascade 2023-02-21T01:50:46.759+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846759|5|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists delivery cascade |drop table if exists delivery cascade 2023-02-21T01:50:46.759+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop table if exists item cascade 2023-02-21T01:50:46.761+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846760|1|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists item cascade |drop table if exists item cascade 2023-02-21T01:50:46.761+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop table if exists member cascade 2023-02-21T01:50:46.764+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846764|2|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists member cascade |drop table if exists member cascade 2023-02-21T01:50:46.764+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop table if exists order_item cascade 2023-02-21T01:50:46.769+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846769|4|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists order_item cascade |drop table if exists order_item cascade 2023-02-21T01:50:46.769+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop table if exists orders cascade 2023-02-21T01:50:46.771+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846771|1|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop table if exists orders cascade |drop table if exists orders cascade 2023-02-21T01:50:46.772+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop sequence if exists category_seq2023-02-21T01:50:46.773+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846773|0|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists category_seq|drop sequence if exists category_seq2023-02-21T01:50:46.773+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop sequence if exists delivery_seq2023-02-21T01:50:46.774+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846774|0|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists delivery_seq|drop sequence if exists delivery_seq2023-02-21T01:50:46.774+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop sequence if exists item_seq2023-02-21T01:50:46.775+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846775|0|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists item_seq|drop sequence if exists item_seq2023-02-21T01:50:46.775+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop sequence if exists member_seq2023-02-21T01:50:46.776+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846776|0|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists member_seq|drop sequence if exists member_seq2023-02-21T01:50:46.776+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop sequence if exists order_item_seq2023-02-21T01:50:46.777+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846777|0|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists order_item_seq|drop sequence if exists order_item_seq2023-02-21T01:50:46.777+09:00 DEBUG 19303 --- [ionShutdownHook] org.hibernate.SQL : drop sequence if exists orders_seq2023-02-21T01:50:46.778+09:00 INFO 19303 --- [ionShutdownHook] p6spy : 1676911846778|0|statement|connection 7|url jdbc:h2:mem:a8d68834-99ee-4507-a769-b266691c8e37|drop sequence if exists orders_seq|drop sequence if exists orders_seq2023-02-21T01:50:46.783+09:00 INFO 19303 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...2023-02-21T01:50:46.788+09:00 INFO 19303 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.Process finished with exit code 0
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
10분 18초에 getTotalPrice() 함수에서 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]getTotalPrice() 메서드가 OrderItem 클래스 안에 있으니까 orderPrice 변수와 count변수를 직접 건들수 있는데 왜 orderPrice*count가 아닌 getOrderPrice()* getCount()를 쓰는지 궁금합니다..
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
controller 3단분리에 대해 질문이 있습니다.
강의를 보면 controller에서 작업을 마무리하고, 이후에 코드를 정리하면서 controller, service, repository로 3단 분리를 하시는데,실제로 처음부터 3단 분리를 하면서 코드를 짜려니까 머리 속에 로직이 잘 정리가 안되더라고요.처음부터 역할에 맞게 분리를 하며 코딩을 하시는지, 아니면 처음에는 머리 속의 로직을 그대로 쭉 코딩하신 후에 나중에 정리를 하시는 편이신지 궁금합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
생성자주입관련 질문
안녕하세요 강의를 듣는중에 너무 궁금한 부분이 생겨서 도움을 얻고자 질문드립니다.수업과는 거리가 있을 수 있으나 생성자 주입 중private과 final이 바뀌어 작성되어도 구문 상 오류가 나질 않는데요 private final == final private주입 방법이 똑같은 의미로 받아들이면 될지 궁금합니다!!
-
해결됨스프링 프레임워크는 내 손에 [스프2탄]
this.totalCount=totalCount
27강. 페이징처리에 필요한 값계산 파트를 들으면서 조금 이해가 안가는 부분이 있어서 질문드립니다.위 사진에서 int totalCount를 매개변수로 메서드를 생성하셨는데 this.totalCount에 매개변수인 totalCount를 집어넣는게 무슨 의미인지가 궁금합니다.최종적으로 질의를 정리하면 this.totalCount=totalCount; <- 해당 코드가 왜 작성되었는지가 이해가 잘안가는 상황입니다..아래 makePaging() 에서 totalCount를 사용하려고 저렇게 작성하는건가요?매번 답변해주셔서 감사합니다 : )
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원 가입 후 회원 목록 조회 시 500 Error
회원 가입 후 db에서 저장되는 것이 조회가 되는데 회원 목록에 들어가면 500Error가 발생합니다.그래서 다시 실행시키면 db에 저장 시켰던 데이터도 사라집니다.어떻게 해결할 수 있을까요?package jpabook.jpabook.controller; import jpabook.jpabook.domain.Address; import jpabook.jpabook.domain.Member; import jpabook.jpabook.service.MemberService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import javax.validation.Valid; import java.util.List; @Controller @RequiredArgsConstructor public class MemberController { private final MemberService memberService; @GetMapping("/members/new") public String createForm(Model model){ model.addAttribute("memberForm", new MemberForm()); return "members/createMemberForm"; } @PostMapping("/members/new") public String create(@Valid MemberForm form, BindingResult result){ if(result.hasErrors()){ return "members/createMemberForm"; } Address address = new Address(form.getCity(), form.getStreet(), form.getZipcode()); Member member = new Member(); member.setName(form.getName()); member.setAddress(address); memberService.join(member); return "redirect:/"; } @GetMapping(value = "/members") public String list(Model model) { model.addAttribute("members", memberService.findMembers()); return "members/memberList"; } }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티 매니저 동시성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)일반적으로 스프링 컨테이너는 싱글톤 기반으로 동작하기에 빈은 모든 쓰레드가 공유합니다. 그런데@PersistenceContext을 통해 주입 받은 EntityManager는 동시성 문제가 발생하지 않는다고 해서 의문이 생겼습니다. 따라서 관련된 내용을 공부하던 중 아래 질문의 영한님 답변을 봤습니다. https://www.inflearn.com/questions/158967/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-entitymanager%EC%97%90-%EB%8C%80%ED%95%B4-%EA%B6%81%EA%B8%88%ED%95%9C-%EC%A0%90%EC%9D%B4-%EC%9E%88%EC%96%B4-%EC%A7%88%EB%AC%B8-%EB%82%A8%EA%B9%81%EB%8B%88%EB%8B%A4제가 이해한 바로는 private final EntityManager em;를 통해 주입 받은 엔티티매니저는 싱글톤 빈이지만 일반적인 빈들과는 다릅니다.공통점 : 일반적인 스프링 빈과 엔티티 매니저는 모두 프록시 객체를 주입받는다. 그리고 이는 모두 싱글톤이다.차이점 : 일반적인 스프링 빈은 호출될때마다 에플리케이션 전체를 대상으로 해당 빈이 스프링 컨테이너에 등록되어 있는지 찾고 있으면 스프링 컨테이너에서 찾아 반환, 없으면 빈을 생성하고 등록(CGLIB 기술)반면 엔티티매니저는 이해가 가지 않습니다. 책 581 페이지를 보면 A, B 코드에서 호출한 엔티티 매니저는 서로 다르며 , 582에서 멀티 쓰레드에서 같은 코드에서 호출한 엔티티 매니저는 서로 같습니다. 일반적인 싱글톤 빈들이나 엔티티 매니저 모두 싱글톤이며 프록시 객체를 주입 받는 것 같은데 그 안의 원리들이 조금 다른 것 같은데 이 점이 궁금합니다.
-
미해결실전! Querydsl
test
test할때는 log.info잘 사용 안하나요?
-
해결됨호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
회원가입 성공 시 테스트에 대한 질문입니다.
안녕하세요 호돌맨님회원가입 성공 시 테스트 코드에 대해서 궁금한게 있어 질문 드립니다. @Test @DisplayName("회원가입 성공") void test1() { PasswordEncoder encoder = new PasswordEncoder(); Signup signup = Signup.builder() .name("호돌맨") .email("hodolman@gmail.com") .password("1234") .build(); authService.signup(signup); assertEquals(1L, userRepository.count()); User user = userRepository.findAll().iterator().next(); assertEquals("hodolman@gmail.com", user.getEmail()); // assertNotNull(user.getPassword()); // assertNotEquals("1234", user.getPassword()); assertTrue(encoder.matches("1234", user.getPassword())); assertEquals("호돌맨", user.getName()); } 지금 userRepository에 비밀번호가 암호화 된 상태로 저장중이어서 assertTrue로 테스트를 한 번 짜봤는데 위처럼 하는 방식은 좋지 않은 방식인가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
후속 강의 Webflux가 듣고 싶습니다.
강의를 듣다보니, Webflux 후속 강의를 준비하실 생각이 있다고 하셨는데, 계획이 있을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
지연로딩과 페치조인을 이용한 메서드명에 대해 궁금한점이 있습니다.
모든 관계를 지연로딩으로 설계하고,성능을 최적화 시키기 위해 필요한 엔티티들만 페치조인을 이용하여 사용할 때영한님의 경우 메서드명을 어떻게 명명하시나요?실제로 실무에 적용 하다보니 이 부분이 정말 애매한 것같아서 질문드립니다.성능을 최적화 시킬려면 사용하는 주 엔티티(Member)에서 필요한 연관관계 엔티티(Team, Order, OrderItem, Item)들을 페치조인해서 사용해야 하는데 그러다보니 많은 메서드들이 나오고 그로인해 메서드명이 길어지는 등 문제가 발생하는데요..강의 내용을 예시로 들면// member - team 패치조인 getMemberWithTeam(Long memberId) // member - team, order 패치조인 getMemberWithTeamAndOrder(Long memberId) // member - team, locker, order 채치조인 getmemberWithTeamAndLockerAndOrder(Long memberId) ...이런 식으로 패치조인하는 엔티티명을 넣어주면 메서드명들이 너무 길어지고 난잡한? 느낌이 나서 영한님의 경우 어떻게 메서드명을 짓는지 궁금합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
request
public void updateUser(@RequestBody UserUpdateRequest request)에서 request를 다른 이름으로 바꾸면 밑줄이 쳐지는데 왜 바꾸면 안 되는 건가요?