inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

컨트롤러 반환 타입 질문입니다.

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요, 강사님. 컨트롤러 코드 관련 질문입니다. 작성한 코드는 컨트롤러의 메소드 반환 타입을 void로 해서 아무것도 반환하지 않는데요, 만약 postmapping 관련 메소드 작성 시, 작성한 게시글의 id값을 반환해주는 코드와 큰 차이가 있을까요? 그리고 찾아보던 중, ResponseEntity를 사용해서 반환해주는 메소드를 보았는데, 메소드의 반환 타입에 따라 기능에 큰 차이가 있는지, 아니면 API 명세의 차이만 있고 기능에는 크게 차이가 없는지 궁금합니다!

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
jd 댓글 1 좋아요 1 조회수 842

memberServiceTest 회원가입 NullPointerException 오류

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의를 한 번 완주한 후 개별적으로 예제와 다르게 다시 공부하고 있는데 오류가 나서요..ㅜㅜ https://drive.google.com/file/d/1Fe9hZbwSCKFYyQtmj_TU2Sl9VwqeXCsO/view?usp=sharing 무엇 때문에 오류가 났는지 알 수 있을까요??

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
새싹 댓글 2 좋아요 0 조회수 604

인증 관련 테스트 할 때 질문드립니다.

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 수업 내용과는 관련 없지만 테스트 코드를 짤 때 벽을 만나서 물어볼 곳이 마땅하지 않아 이 곳에 질문을 하게 됐습니다. 문제 있다면 바로 삭제하도록 하겠습니다. 프로젝트를 진행하고 있는데 Spring Security를 적용해서 하고 있습니다. Service 쪽에서 Authentication 객체를 생성을 하고 JWT 를 만들어 줄 때 Authentication authentication = authenticationManagerBuilder.getObject() .authenticate(new UsernamePasswordAuthenticationToken(username, password)); 이렇게 생성을 하고 있습니다. 그래서 테스트코드를 짤 때 @Mock private AuthenticationManagerBuilder authenticationManagerBuilder; 이런 식으로 Mocking 해주고 Authentication authentication = mock(Authentication.class); given(authenticationManagerBuilder.getObject().authenticate(any())).willReturn(authentication); 이런 식으로 Stubbing 해주고 있는데요. java.lang.NullPointerException: Cannot invoke "java.util.concurrent.atomic.AtomicBoolean.get()" because "this.building" is null 이런 에러가 나타나고 있습니다. AuthenticationManagerBuilder 를 좀 살펴보니 타고타고 가다보면 AbstractSecurityBuilder 라는 것을 상속하고 있더군요. AbstractSecurityBuilder를 보면 private AtomicBoolean building = new AtomicBoolean(); 이런 필드가 있습니다. 에러에서 나온 building이 이걸 말하는 것 같습니다. 여기 나오는 building이 null 이어서 public final O getObject() { if (!this.building.get()) { throw new IllegalStateException("This object has not been built"); } return this.object; } 여기서 if 조건문을 탈 때 this.building이 null이기 때문에 NPE가 발생하는 것 같습니다. AuthenticationManagerBuilder를 Mocking을 해서 이런 결과가 생기는것인가 하는 의심이 들고 있는 상황입니다. 혹시 이런 경우에는 어떤 식으로 Mocking을 하고 Stubbing을 해줘야 테스트가 통과될 지 궁금합니다. 구글링해도 자료가 거의 없고 gpt도 계속 이상한 말을 반복해서..ㅠㅠ 어쩔 수 없이 여기에 질문 올려봅니다. 도움 주시면 감사하겠습니다..!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
비가싫어요 댓글 2 좋아요 0 조회수 1298

섹션 7에서 완벽하게 제어하기 파트에서 질문이 있습니다!

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. LocalDateTime. now(), 즉 현재 시간과 관련된 기능의 사용을 지양하자라고 말씀해주셨습니다! 이 뜻이 현재시간과 관련된 요구사항이 넘어왔을 때 해당 요구사항을 현재시간과 관련 없이 다른 방법으로 풀어보자 라는 의미일까요? 아니면 다른 기술적인 방법을 말씀하시는 걸까요~? 기술적인 방법이 있는 것이라면 어떤 방법이 있을지 궁금합니다!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
khmin3011 댓글 2 좋아요 1 조회수 438

Cookie의 경우 RestDocs로 어떻게 해야할까요?

미해결

Practical Testing: 실용적인 테스트 가이드

강의 너무 잘듣고 사이드 프로젝트에 적용하고 있는데 cookie의 경우 restdocs로 어떻게 추출해야되는지 모르겠습니다.. 공식 문서에서는 requestCookies() 가 나와있는데 현재 저의 프로젝트에서는 적용이 안되네요. 저는 SpringBoot 2.6.12 버전이며 java 17, management의 경우 1.0.14 버전입니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
댓글 2 좋아요 1 조회수 1089

서브쿼리 안에 groupby시 sequence number not allowed here

미해결

실전! Querydsl

안녕하세요 oracle db에서 서브쿼리 안에서 groupby를 했을떄 ORA-02287 sequence number not allowed here 오류가 나옵니다. 검색해보니 SEQUENCE를 사용할 수 없는 경우는 다음과 같다. SELECT 문장의 경우에서 1. WHERE 절 안에서 2. GROUP BY나 ORDER BY 절에서 3. DISTINCT 절에서 4. UNION 이나 INTERSECT 나 MINUS 와 함께 사용 할때 5. 서브 쿼리 안에서 라고 하는데 제 경우에는 이 group by를 하고싶으면 어떻게 할수있나요? 감사합니다. Integer sucessCount =0, JPQLQuery<Tuple> subQuery = JPAExpressions.select( log.name, log.content, new CaseBuilder() .when(log.statusCode.eq("0") .then(sucessCount+1) .otherwise(successCount), client.id ) .from(log) .leftJoin(client) .on(client.name.eq(log.name)) //이 group by가 문제 .groupBy(log.name, log.content, client.id); queryFactory.insert(stats) .columns( stats.name, stats.content, stats.successCount, stats.clientId ) .select(subQuery) .execute();

  • java
  • jpa
댓글 1 좋아요 0 조회수 404

분산 데이터베이스 환경에서도 cqs패턴을 사용할 수 있나요?

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 커맨드와 쿼리를 분리한다고 하셨는데, 분산 데이터베이스 환경에서 update 쿼리에서 반환값을 가져오지 않고 다시 findOne을 수행한다고 가정했을때 전파가 아직 이루어지지 않아서 조회가 안되는 경우가 발생할 수도 있을까요? 이전에 물리적으로 분산 데이터베이스 환경에서 update되는 데이터가 많아서 find로 값을 불러오지 못한 경우가 있어서 무조건 update 쿼리를 보낼때 반환값을 받아서 처리했던 기억이 있어서 질문 드립니다.

  • java
  • spring
  • spring-boot
  • jpa
하얀종이개발자 댓글 1 좋아요 0 조회수 453

jpa 회원가입 테스트에서 오류가 납니다

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] jpa강의 중 test를 실행하는 부분에서 회원가입 test가 계속 오류가 납니다. 어느부분이 잘못됐는지도 잘 모르겠어요.. /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin/java -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=50406:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/joyihan/.m2/repository/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.jar:/Users/joyihan/.m2/repository/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.jar:/Users/joyihan/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/joyihan/.m2/repository/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar:/Users/joyihan/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/junit/lib/junit5-rt.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/junit/lib/junit-rt.jar:/Users/joyihan/study/hello-spring/out/test/classes:/Users/joyihan/study/hello-spring/out/production/classes:/Users/joyihan/study/hello-spring/out/production/resources:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-thymeleaf/2.7.8/fa1c619458d1e09fc749fce98c114d37af5af90b/spring-boot-starter-thymeleaf-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-web/2.7.8/7596f0263544e8230a5bf5357a02fb391f036f77/spring-boot-starter-web-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-data-jpa/2.7.8/ace969cae39b4479ffedd58e04c5a6eca60c94a5/spring-boot-starter-data-jpa-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-test/2.7.8/5751fec1eae46b9dce1ff399e25deade13b5265d/spring-boot-starter-test-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter/2.7.8/df091ed288bd1dcf89fa0554a29fe96f27802efc/spring-boot-starter-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.thymeleaf/thymeleaf-spring5/3.0.15.RELEASE/7170e1bcd1588d38c139f7048ebcc262676441c3/thymeleaf-spring5-3.0.15.RELEASE.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.thymeleaf.extras/thymeleaf-extras-java8time/3.0.4.RELEASE/36e7175ddce36c486fff4578b5af7bb32f54f5df/thymeleaf-extras-java8time-3.0.4.RELEASE.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-json/2.7.8/fb09a04154ce2aea974755bc011a588eee2332aa/spring-boot-starter-json-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-tomcat/2.7.8/8e7a62215cc56473c891480f722dda43dd6059d9/spring-boot-starter-tomcat-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-webmvc/5.3.25/62a8258bcc4f7a58dd69af5140481b64653c90/spring-webmvc-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.3.25/c69815e7931cd3ce7f19cc8028fd1c36626120d6/spring-web-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-aop/2.7.8/72fc6a1e13d5e46b20c0d9e45574bfb0d6e7af6d/spring-boot-starter-aop-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-jdbc/2.7.8/5821d4af88c26bc5e23b7131ff8e68c67275d8b6/spring-boot-starter-jdbc-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/jakarta.transaction/jakarta.transaction-api/1.3.3/c4179d48720a1e87202115fbed6089bdc4195405/jakarta.transaction-api-1.3.3.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/jakarta.persistence/jakarta.persistence-api/2.2.3/8f6ea5daedc614f07a3654a455660145286f024e/jakarta.persistence-api-2.2.3.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.hibernate/hibernate-core/5.6.14.Final/71e407089b71ed7c6e99385fd851c308fed7be44/hibernate-core-5.6.14.Final.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-jpa/2.7.7/1c01c650d0132f44971d9e28509eb15475526a48/spring-data-jpa-2.7.7.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aspects/5.3.25/7afc5817a53aaccb2d71858cc5dceba716dba1db/spring-aspects-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test-autoconfigure/2.7.8/48f875d696d55257ce380d2c399d60030508d081/spring-boot-test-autoconfigure-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test/2.7.8/e90d0e2f4502d38244fbee6f5f03056abd24888b/spring-boot-test-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.jayway.jsonpath/json-path/2.7.0/f9d7d9659f2694e61142046ff8a216c047f263e8/json-path-2.7.0.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-api/2.3.3/48e3b9cfc10752fba3521d6511f4165bea951801/jakarta.xml.bind-api-2.3.3.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.22.0/c300c0c6a24559f35fa0bd3a5472dc1edcd0111e/assertj-core-3.22.0.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-2.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter/5.8.2/5a817b1e63f1217e5c586090c45e681281f097ad/junit-jupiter-5.8.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-junit-jupiter/4.5.1/f81fb60bd69b3a6e5537ae23b883326f01632a61/mockito-junit-jupiter-4.5.1.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/4.5.1/ed456e623e5afc6f4cee3ae58144e5c45f3b3bf/mockito-core-4.5.1.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.skyscreamer/jsonassert/1.5.1/6d842d0faf4cf6725c509a5e5347d319ee0431c3/jsonassert-1.5.1.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/5.3.25/42a55c25a4da3bc330d8ab3ea7648cd76d0830d4/spring-test-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.3.25/85382e86321227506bf7f97ed80e2ab88bce25f0/spring-core-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.xmlunit/xmlunit-core/2.9.1/e5833662d9a1279a37da3ef6f62a1da29fcd68c4/xmlunit-core-2.9.1.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.7.8/cb835d82d00116e907d341d11096c3476ab49721/spring-boot-autoconfigure-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.7.8/8db5af0f1171bb402c27a85fe97d741bddaa6fee/spring-boot-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-logging/2.7.8/439c2c6fb705c4e7338b2c7a975a84b4f0cb3724/spring-boot-starter-logging-2.7.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/1.3.5/59eb84ee0d616332ff44aba065f3888cf002cd2d/jakarta.annotation-api-1.3.5.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.30/8fde7fe2586328ac3c68db92045e1c8759125000/snakeyaml-1.30.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.thymeleaf/thymeleaf/3.0.15.RELEASE/13e3296a03d8a597b734d832ed8656139bf9cdd8/thymeleaf-3.0.15.RELEASE.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.36/6c62681a2f655b49963a5983b8b0950a6120ae14/slf4j-api-1.7.36.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.13.4/e6d820112871f33cd94a1dcc54eef58874753b5/jackson-datatype-jsr310-2.13.4.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-parameter-names/2.13.4/858ccf6624b5fac6044813e845063edb6a62cf37/jackson-module-parameter-names-2.13.4.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.13.4/557dbba5d8dfc7b7f944c58fe084109afcb5670b/jackson-datatype-jdk8-2.13.4.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.13.4.2/325c06bdfeb628cfb80ebaaf1a26cc1eb558a585/jackson-databind-2.13.4.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-websocket/9.0.71/987b6460af04b08bc9914788d2762080afb09541/tomcat-embed-websocket-9.0.71.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/9.0.71/adaed61b4eaa5b52448336c0881fcd828fd51a2f/tomcat-embed-core-9.0.71.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-el/9.0.71/8fe43848c27ec921c8c5d6dcbd8b959076d7bf99/tomcat-embed-el-9.0.71.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/5.3.25/268a70ce4f44333ce0f13304c5f8c53b3df5f5f4/spring-context-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/5.3.25/d681cdb86611f03d8ef29654edde219fe5afef1d/spring-expression-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/5.3.25/722e30759b29331726f9deed76f80b22345ee627/spring-aop-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/5.3.25/b3aeae036b4ea1abfa1f9604d452e19664efe5f6/spring-beans-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.aspectj/aspectjweaver/1.9.7/158f5c255cd3e4408e795b79f7c3fbae9b53b7ca/aspectjweaver-1.9.7.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/5.3.25/809f5841b13d42e5d4d14eb13346958cc9e9e187/spring-jdbc-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.zaxxer/HikariCP/4.0.3/107cbdf0db6780a065f895ae9d8fbf3bb0e1c21f/HikariCP-4.0.3.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/2.3.7/ebcde6a44159eb9e3db721dfe6b45f26e6272341/jaxb-runtime-2.3.7.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.hibernate.common/hibernate-commons-annotations/5.1.2.Final/e59ffdbc6ad09eeb33507b39ffcf287679a498c8/hibernate-commons-annotations-5.1.2.Final.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss-logging/3.4.3.Final/c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea/jboss-logging-3.4.3.Final.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.12.22/984e536b4f3fb668b21f15b90c1e8704292d4bdd/byte-buddy-1.12.22.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/antlr/antlr/2.7.7/83cd2cd674a217ade95a4bb83a8a14f351f48bd0/antlr-2.7.7.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.jboss/jandex/2.4.2.Final/1e1c385990b258ff1a24c801e84aebbacf70eb39/jandex-2.4.2.Final.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.fasterxml/classmate/1.5.1/3fe0bed568c62df5e89f4f174c101eab25345b6c/classmate-1.5.1.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-orm/5.3.25/b0fb2911a5d528037149240c8b4f2c820d90405b/spring-orm-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/2.7.7/5c320aa46d71707aabdc7287b6f83122ce33f55c/spring-data-commons-2.7.7.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-tx/5.3.25/b459d0b755c9614a55ebd39ce353748c4b210be2/spring-tx-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/net.minidev/json-smart/2.4.8/7c62f5f72ab05eb54d40e2abf0360a2fe9ea477f/json-smart-2.4.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/jakarta.activation/jakarta.activation-api/1.2.2/99f53adba383cb1bf7c3862844488574b559621f/jakarta.activation-api-1.2.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-params/5.8.2/ddeafe92fc263f895bfb73ffeca7fd56e23c2cce/junit-jupiter-params-5.8.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-api/5.8.2/4c21029217adf07e4c0d0c5e192b6bf610c94bdc/junit-jupiter-api-5.8.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.12.22/9c4127080df12304336ca90c2ef3f8b7d72915c1/byte-buddy-agent-1.12.22.jar:/Users/joyihan/.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/joyihan/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.3.25/2e65a986dc7f98b40faed8df1d50db77c0b96c61/spring-jcl-5.3.25.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.11/4741689214e9d1e8408b206506cbe76d1c6a7d60/logback-classic-1.2.11.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-to-slf4j/2.17.2/17dd0fae2747d9a28c67bc9534108823d2376b46/log4j-to-slf4j-2.17.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.slf4j/jul-to-slf4j/1.7.36/ed46d81cef9c412a88caef405b58f93a678ff2ca/jul-to-slf4j-1.7.36.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.attoparser/attoparser/2.0.5.RELEASE/a93ad36df9560de3a5312c1d14f69d938099fa64/attoparser-2.0.5.RELEASE.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.unbescape/unbescape/1.1.6.RELEASE/7b90360afb2b860e09e8347112800d12c12b2a13/unbescape-1.1.6.RELEASE.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.13.4/858c6cc78e1f08a885b1613e1d817c829df70a6e/jackson-annotations-2.13.4.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.13.4/cf934c681294b97ef6d80082faeefbe1edadf56/jackson-core-2.13.4.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/2.3.7/55cddcac1945150e09b09b0f89d86799652eee82/txw2-2.3.7.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/3.0.12/cbbe1a62b0cc6c85972e99d52aaee350153dc530/istack-commons-runtime-3.0.12.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/net.minidev/accessors-smart/2.4.8/6e1bee5a530caba91893604d6ab41d0edcecca9a/accessors-smart-2.4.8.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.apiguardian/apiguardian-api/1.1.2/a231e0d844d2721b0fa1b238006d15c6ded6842a/apiguardian-api-1.1.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-commons/1.8.2/32c8b8617c1342376fd5af2053da6410d8866861/junit-platform-commons-1.8.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.2.0/28c11eb91f9b6d8e200631d46e20a7f407f2a046/opentest4j-1.2.0.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.2.11/a01230df5ca5c34540cdaa3ad5efb012f1f1f792/logback-core-1.2.11.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.17.2/f42d6afa111b4dec5d2aea0fe2197240749a4ea6/log4j-api-2.17.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.1/a99500cf6eea30535eeac6be73899d048f8d12a8/asm-9.1.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.h2database/h2/2.1.214/d5c2005c9e3279201e12d4776c948578b16bf8b2/h2-2.1.214.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-engine/5.8.2/c598b4328d2f397194d11df3b1648d68d7d990e3/junit-jupiter-engine-5.8.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.objenesis/objenesis/3.2/7fadf57620c8b8abdf7519533e5527367cb51f09/objenesis-3.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/com.sun.activation/jakarta.activation/1.2.2/74548703f9851017ce2f556066659438019e7eb5/jakarta.activation-1.2.2.jar:/Users/joyihan/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-engine/1.8.2/b737de09f19864bd136805c84df7999a142fec29/junit-platform-engine-1.8.2.jar com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 hello.hellospring.service.MemberServiceintegrationTest,회원가입 22:28:16.165 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate] 22:28:16.171 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support .DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)] 22:28:16.193 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [hello.hellospring.service.MemberServiceintegrationTest] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper] 22:28:16.200 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [hello.hellospring.service.MemberServiceintegrationTest], using SpringBootContextLoader 22:28:16.203 [main] DEBUG org.springframework.test.context.support .AbstractContextLoader - Did not detect default resource location for test class [hello.hellospring.service.MemberServiceintegrationTest]: class path resource [hello/hellospring/service/MemberServiceintegrationTest-context.xml] does not exist 22:28:16.203 [main] DEBUG org.springframework.test.context.support .AbstractContextLoader - Did not detect default resource location for test class [hello.hellospring.service.MemberServiceintegrationTest]: class path resource [hello/hellospring/service/MemberServiceintegrationTestContext.groovy] does not exist 22:28:16.203 [main] INFO org.springframework.test.context.support .AbstractContextLoader - Could not detect default resource locations for test class [hello.hellospring.service.MemberServiceintegrationTest]: no resource found for suffixes {-context.xml, Context.groovy}. 22:28:16.204 [main] INFO org.springframework.test.context.support .AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [hello.hellospring.service.MemberServiceintegrationTest]: MemberServiceintegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 22:28:16.229 [main] DEBUG org.springframework.test.context.support .ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [hello.hellospring.service.MemberServiceintegrationTest] 22:28:16.264 [main] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [/Users/joyihan/study/hello-spring/out/production/classes/hello/hellospring/HelloSpringApplication.class] 22:28:16.266 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration hello.hellospring.HelloSpringApplication for test class hello.hellospring.service.MemberServiceintegrationTest 22:28:16.325 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [hello.hellospring.service.MemberServiceintegrationTest]: using defaults. 22:28:16.325 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support .DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support .DependencyInjectionTestExecutionListener, org.springframework.test.context.support .DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener] 22:28:16.336 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@784c3487, org.springframework.test.context.support .DirtiesContextBeforeModesTestExecutionListener@53142455, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@40dff0b7, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@7966baa7, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@60975100, org.springframework.test.context.support .DirtiesContextTestExecutionListener@1253e7cb, org.springframework.test.context.transaction.TransactionalTestExecutionListener@2d36e77e, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@61c9c3fd, org.springframework.test.context.event.EventPublishingTestExecutionListener@3b0c9195, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@366c4480, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@2c7b5824, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@302a07d, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@5cdd09b1, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@8c11eee, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@7e8dcdaa] 22:28:16.338 [main] DEBUG org.springframework.test.context.support .AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@52d645b1 testClass = MemberServiceintegrationTest, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@2101b44a testClass = MemberServiceintegrationTest, locations = '{}', classes = '{class hello.hellospring.HelloSpringApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@28194a50, org.springframework.boot.test.autoconfigure.properties .PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@4149c063, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@62656be4, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@222a59e6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@70e38ce1, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@1ffe63b9], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null]. . ____ _ /\\ / ___'_ __ ( _)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.8) 2023-05-15 22:28:16.767 INFO 6865 --- [ main] h.h.s.MemberServiceintegrationTest : Starting MemberServiceintegrationTest using Java 11.0.18 on joihan-ui-MacBookPro.local with PID 6865 (started by joyihan in /Users/joyihan/study/hello-spring) 2023-05-15 22:28:16.768 INFO 6865 --- [ main] h.h.s.MemberServiceintegrationTest : No active profile set, falling back to 1 default profile: "default" 2023-05-15 22:28:17.165 INFO 6865 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2023-05-15 22:28:17.176 INFO 6865 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 5 ms. Found 0 JPA repository interfaces. 2023-05-15 22:28:17.573 INFO 6865 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-05-15 22:28:17.610 INFO 6865 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.14.Final 2023-05-15 22:28:17.719 INFO 6865 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations { 5.1.2.Final } 2023-05-15 22:28:17.786 INFO 6865 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2023-05-15 22:28:22.937 ERROR 6865 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:510 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.readException( SessionRemote.java:637 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.done( SessionRemote.java:606 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.initTransfer( SessionRemote.java:163 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.connectServer( SessionRemote.java:433 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.connectEmbeddedOrServer( SessionRemote.java:325 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcConnection.<init>( JdbcConnection.java:122 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.Driver.connect( Driver.java:59 ) ~[h2-2.1.214.jar:2.1.214] at com.zaxxer.hikari.util.DriverDataSource.getConnection( DriverDataSource.java:138 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection( PoolBase.java:364 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry( PoolBase.java:206 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry( HikariPool.java:476 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast( HikariPool.java:561 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>( HikariPool.java:115 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection( HikariDataSource.java:112 ) ~[HikariCP-4.0.3.jar:na] at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection( DatasourceConnectionProviderImpl.java:122 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection( JdbcEnvironmentInitiator.java:181 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:68 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:35 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService( StandardServiceRegistryImpl.java:101 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:263 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:237 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.id .factory.internal.DefaultIdentifierGeneratorFactory.injectServices( DefaultIdentifierGeneratorFactory.java:175 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies( AbstractServiceRegistryImpl.java:286 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:243 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>( InFlightMetadataCollectorImpl.java:173 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:127 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance( SpringExtension.java:138 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8( ClassBasedTestDescriptor.java:363 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable( ClassBasedTestDescriptor.java:368 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9( ClassBasedTestDescriptor.java:363 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept( ReferencePipeline.java:195 ) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept( ReferencePipeline.java:177 ) ~[na:na] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining( ArrayList.java:1655 ) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto( AbstractPipeline.java:484 ) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto( AbstractPipeline.java:474 ) ~[na:na] at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining( StreamSpliterators.java:312 ) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:735 ) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:734 ) ~[na:na] at java.base/java.util.stream.ReferencePipeline$Head.forEach( ReferencePipeline.java:658 ) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors( ClassBasedTestDescriptor.java:362 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6( ClassBasedTestDescriptor.java:283 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance( ClassBasedTestDescriptor.java:282 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4( ClassBasedTestDescriptor.java:272 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.Optional.orElseGet( Optional.java:369 ) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5( ClassBasedTestDescriptor.java:271 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances( TestInstancesProvider.java:31 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0( TestMethodTestDescriptor.java:102 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:101 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:66 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$prepare$2( NodeTestTask.java:123 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.prepare( NodeTestTask.java:123 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:90 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs( JUnit5IdeaTestRunner.java:57 ) ~[junit5-rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) ~[junit-rt.jar:na] at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) ~[idea_rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:232 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:55 ) ~[junit-rt.jar:na] 2023-05-15 22:28:22.941 WARN 6865 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:510 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.readException( SessionRemote.java:637 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.done( SessionRemote.java:606 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.initTransfer( SessionRemote.java:163 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.connectServer( SessionRemote.java:433 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.connectEmbeddedOrServer( SessionRemote.java:325 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcConnection.<init>( JdbcConnection.java:122 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.Driver.connect( Driver.java:59 ) ~[h2-2.1.214.jar:2.1.214] at com.zaxxer.hikari.util.DriverDataSource.getConnection( DriverDataSource.java:138 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection( PoolBase.java:364 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry( PoolBase.java:206 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry( HikariPool.java:476 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast( HikariPool.java:561 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>( HikariPool.java:115 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection( HikariDataSource.java:112 ) ~[HikariCP-4.0.3.jar:na] at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection( DatasourceConnectionProviderImpl.java:122 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection( JdbcEnvironmentInitiator.java:181 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:68 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:35 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService( StandardServiceRegistryImpl.java:101 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:263 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:237 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.id .factory.internal.DefaultIdentifierGeneratorFactory.injectServices( DefaultIdentifierGeneratorFactory.java:175 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies( AbstractServiceRegistryImpl.java:286 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:243 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>( InFlightMetadataCollectorImpl.java:173 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:127 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance( SpringExtension.java:138 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8( ClassBasedTestDescriptor.java:363 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable( ClassBasedTestDescriptor.java:368 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9( ClassBasedTestDescriptor.java:363 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept( ReferencePipeline.java:195 ) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept( ReferencePipeline.java:177 ) ~[na:na] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining( ArrayList.java:1655 ) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto( AbstractPipeline.java:484 ) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto( AbstractPipeline.java:474 ) ~[na:na] at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining( StreamSpliterators.java:312 ) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:735 ) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:734 ) ~[na:na] at java.base/java.util.stream.ReferencePipeline$Head.forEach( ReferencePipeline.java:658 ) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors( ClassBasedTestDescriptor.java:362 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6( ClassBasedTestDescriptor.java:283 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance( ClassBasedTestDescriptor.java:282 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4( ClassBasedTestDescriptor.java:272 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.Optional.orElseGet( Optional.java:369 ) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5( ClassBasedTestDescriptor.java:271 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances( TestInstancesProvider.java:31 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0( TestMethodTestDescriptor.java:102 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:101 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:66 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$prepare$2( NodeTestTask.java:123 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.prepare( NodeTestTask.java:123 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:90 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs( JUnit5IdeaTestRunner.java:57 ) ~[junit5-rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) ~[junit-rt.jar:na] at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) ~[idea_rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:232 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:55 ) ~[junit-rt.jar:na] 2023-05-15 22:28:22.946 ERROR 6865 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 2023-05-15 22:28:22.947 WARN 6865 --- [ main] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 2023-05-15 22:28:22.958 INFO 6865 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2023-05-15 22:28:22.971 ERROR 6865 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance( SpringExtension.java:138 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8( ClassBasedTestDescriptor.java:363 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable( ClassBasedTestDescriptor.java:368 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9( ClassBasedTestDescriptor.java:363 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept( ReferencePipeline.java:195 ) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept( ReferencePipeline.java:177 ) ~[na:na] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining( ArrayList.java:1655 ) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto( AbstractPipeline.java:484 ) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto( AbstractPipeline.java:474 ) ~[na:na] at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining( StreamSpliterators.java:312 ) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:735 ) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:734 ) ~[na:na] at java.base/java.util.stream.ReferencePipeline$Head.forEach( ReferencePipeline.java:658 ) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors( ClassBasedTestDescriptor.java:362 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6( ClassBasedTestDescriptor.java:283 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance( ClassBasedTestDescriptor.java:282 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4( ClassBasedTestDescriptor.java:272 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.Optional.orElseGet( Optional.java:369 ) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5( ClassBasedTestDescriptor.java:271 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances( TestInstancesProvider.java:31 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0( TestMethodTestDescriptor.java:102 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:101 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:66 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$prepare$2( NodeTestTask.java:123 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.prepare( NodeTestTask.java:123 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:90 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs( JUnit5IdeaTestRunner.java:57 ) ~[junit5-rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) ~[junit-rt.jar:na] at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) ~[idea_rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:232 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:55 ) ~[junit-rt.jar:na] Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:275 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:237 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.id .factory.internal.DefaultIdentifierGeneratorFactory.injectServices( DefaultIdentifierGeneratorFactory.java:175 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies( AbstractServiceRegistryImpl.java:286 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:243 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>( InFlightMetadataCollectorImpl.java:173 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:127 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ~[spring-beans-5.3.25.jar:5.3.25] ... 86 common frames omitted Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect( DialectFactoryImpl.java:100 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect( DialectFactoryImpl.java:54 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:138 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:35 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService( StandardServiceRegistryImpl.java:101 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:263 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] ... 103 common frames omitted 2023-05-15 22:28:22.972 ERROR 6865 --- [ main] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@784c3487] to prepare test instance [hello.hellospring.service.MemberServiceintegrationTest@5a9840f3] java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:98 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance( SpringExtension.java:138 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8( ClassBasedTestDescriptor.java:363 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable( ClassBasedTestDescriptor.java:368 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9( ClassBasedTestDescriptor.java:363 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept( ReferencePipeline.java:195 ) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept( ReferencePipeline.java:177 ) ~[na:na] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining( ArrayList.java:1655 ) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto( AbstractPipeline.java:484 ) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto( AbstractPipeline.java:474 ) ~[na:na] at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining( StreamSpliterators.java:312 ) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:735 ) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:734 ) ~[na:na] at java.base/java.util.stream.ReferencePipeline$Head.forEach( ReferencePipeline.java:658 ) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors( ClassBasedTestDescriptor.java:362 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6( ClassBasedTestDescriptor.java:283 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance( ClassBasedTestDescriptor.java:282 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4( ClassBasedTestDescriptor.java:272 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.Optional.orElseGet( Optional.java:369 ) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5( ClassBasedTestDescriptor.java:271 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances( TestInstancesProvider.java:31 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0( TestMethodTestDescriptor.java:102 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:101 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:66 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$prepare$2( NodeTestTask.java:123 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.prepare( NodeTestTask.java:123 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:90 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs( JUnit5IdeaTestRunner.java:57 ) ~[junit5-rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) ~[junit-rt.jar:na] at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) ~[idea_rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:232 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:55 ) ~[junit-rt.jar:na] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ~[spring-test-5.3.25.jar:5.3.25] ... 71 common frames omitted Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:275 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:237 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.id .factory.internal.DefaultIdentifierGeneratorFactory.injectServices( DefaultIdentifierGeneratorFactory.java:175 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies( AbstractServiceRegistryImpl.java:286 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:243 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>( InFlightMetadataCollectorImpl.java:173 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:127 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ~[spring-beans-5.3.25.jar:5.3.25] ... 86 common frames omitted Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect( DialectFactoryImpl.java:100 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect( DialectFactoryImpl.java:54 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:138 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:35 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService( StandardServiceRegistryImpl.java:101 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:263 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] ... 103 common frames omitted Process finished with exit code 255 오류코드입니다. JpaMemberRepository입니다. package hello.hellospring.repository; import hello.hellospring.domain.Member; import javax.persistence.EntityManager; import java.util.List; import java.util.Optional; public class JpaMemberRepository implements MemberRepository{ private final EntityManager em; public JpaMemberRepository(EntityManager em) { this.em = em; } @Override public Member save(Member member) { em.persist(member); return member; } @Override public Optional<Member> findById(Long id) { Member member = em.find(Member.class, id); return Optional. ofNullable (member); } @Override public Optional<Member> findByName(String name) { List<Member> result = em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); return result.stream ().findAny(); } @Override public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); } } MemberService입니다 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.swing.text.html.Option; import java.util.List; import java.util.Optional; @Transactional public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /** 회원 가입 / public Long join(Member member) { validateDuplicateMember(member); //중복 회원 검증 memberRepository.save (member); return member.getId(); } private void validateDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } /** 전체 회원 조회 / public List<Member> findMembers(){ return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId){ return memberRepository.findById(memberId); } } SpringConfig입니다. package hello.hellospring; import hello.hellospring.repository.*; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.persistence.EntityManager; import javax.sql.DataSource; import javax.xml.crypto.Data ; @Configuration public class SpringConfig { private final DataSource dataSource; private EntityManager em; @Autowired public SpringConfig(DataSource dataSource, EntityManager em) { this.dataSource = dataSource; this.em = em; } @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ //return new MemoryMemberRepository(); //return new JdbcMemberRepository(dataSource); //return new JdbcTemplateMemberRepository(dataSource); return new JpaMemberRepository(em); } }

  • java
  • spring
  • mvc
  • spring-boot
조이한 댓글 2 좋아요 0 조회수 1488

Presentation Layer 테스트 (2) 질문있습니다.

해결됨

Practical Testing: 실용적인 테스트 가이드

Presentation Layer 테스트 (2) 58:57에 모듈을 분리해도 사실은 서비스 계층에서 BeanValidation을 책임상 하지 않는데 의존하고 있기때문에 의존성을 계속 추가해야 한다. 이렇게 말씀해주셨는데 컨트롤러에서 전부 검증을 책임지지 않고 특수 형태 Validation은 서비스 레이어나 도매인 객체 생성할때 검증한다고 하셨는데 검증 로직을 스프링 AOP,스프링 Assert 로 구현을하면 서비스 계층이 스프링 프레임워크를 많이 의존하게 되는거 같아서요 강사님은 어떤식으로 검증로직을 선호하시고, 선호하시는 이유도 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
티벳로보 댓글 1 좋아요 6 조회수 793

서비스 계층의 테스트 범위에 대해서

미해결

Practical Testing: 실용적인 테스트 가이드

//CommunityCommandService.java public void updateCommunity(Long communityId, String description, List<String> newTags) { Community community = communityRepository.findCommunityById(communityId); community.updateCommunity(description, newTags); } 만약, 이런 코드가 있다고 하면 Service는 데이터를 받고 Community 클래스에게 실제 데이터 변경을 위임합니다. //Community.java public void updateCommunity(String description, List<String> tags) { this.description = new Description(description); this.hashtags.updateTags(tags, this); } Service 클래스를 테스트할 때 상태검증으로 테스트한다면, //CommunityCommandService.java @Test void 상태검증_테스트() { community = new Community("dummy Intro", List.of("dummy tag")); given(communityRepository.findById(any)).willReturn(community); communityCommandService.updateCommunity("new intro", List.of("new tag")); assertThat(community.getIntroduce).isEqualTo("new intro"); assertThat(community.getTags).containsExactly("new tag"); } 이렇게 테스트하게 됩니다. 사실 데이터의 변경 자체는 CommunityTest에서 테스트 하였습니다. //CommunityTest.java @Test void updateCommunity() { final Community community = TestCommunity.builder().build(); community.updateCommunity("커뮤니티 소개란 입니다.", List.of("태그1", "태그2")); assertThat(community.getHashtags()).extracting("tag").containsExactly("태그1", "태그2"); assertThat(community.getDescription()).isEqualTo("커뮤니티 소개란 입니다."); } 이렇게 되면 CommunityCommandService에서 내부 Community.updateCommunity를 중복적으로 검증하는게 아닌지 생각이 듭니다. 객체지향 관점에서, Service는 Community에게 위임하여 상태를 변경시킵니다. 실제 내부에 어떠한 변화가 발생했는지에 집중하는게 아니라, 객체에게 위임했는지 여부에 좀 더 초점을 맞춰야하는 걸까요? (verify를 통해서) 질문 저는 사실 상태검증을 더 좋아합니다. 상태검증을 사용한다면 위와 같은 중복검증이 발생하게 되는걸까요? 객체지향의 관점에서 보면 사실 verify를 통해서 호출여부를 판단하는게 더 좋아보입니다. 다만, 상태검증을 위해서라면 위와 같이 중복적으로 검증하는 것을 피할 수 없는건가요? 강사님의 경우, 상태검증을 할 때 위와같이 Community 로직을 다른 곳에서 테스트하였다고 해도, Service에서 다시 테스트하나요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
ㅎㅇㅎㅇㅎㅇ 댓글 1 좋아요 5 조회수 530

Persistence 계층 단위테스트를 어디까지 하는게 맞을까요?

해결됨

Practical Testing: 실용적인 테스트 가이드

@DisplayName("상품 번호 리스트로 상품목록을 조회하기") @Test void findAllByProductNumberIn(){ //given Product product1 = createProduct("001", 1000); Product product2 = createProduct("002", 3000); Product product3 = createProduct("003", 5000); productRepository.saveAll(List.of(product1, product2, product3)); //when List<Product> findProducts = productRepository.findAllByProductNumberIn(List.of("001", "003")); //then assertThat(findProducts).hasSize(2) .extracting("productNumber","price") .containsExactlyInAnyOrder( tuple("001",1000), tuple("003",5000) ); } 1. 데이터 계층은 유효한 상품 번호 리스트만 넘어왔다는 전제로만 테스트를 해도 충분한가요? 유효하지 않은 상품번호는 검증 로직에서 걸러졌다고 생각하고 테스트를 한다고 생각하면 될까요? @DisplayName("미등록된 상품 번호 리스트로 상품목록을 조회하기") @Test void findAllByProductNumberIn(){ //given Product product1 = createProduct("001", 1000); Product product2 = createProduct("002", 3000); Product product3 = createProduct("003", 5000); productRepository.saveAll(List.of(product1, product2, product3)); //when List<Product> findProducts = productRepository.findAllByProductNumberIn(List.of("004", "005")); //then assertThat(findProducts).hasSize(0); } 2. JpaRepository가 제공하는 기본 save,findAll 등도 개발자가 원하는 데이터가 올바르게 저장 되었는지, 조회가 되었는지 테스트도 실무에서는 작성하시나요 ? 아니면 이미 만들어진 코드이기 때문에 불필요한 테스트 코드라 생각해서 넘어가는지 궁금합니다. @DisplayName("주문 생성시 상품 리스트에서 주문의 총 금액을 계산한다.") @Test void calculrateTotalPrice(){ //given List<Product> products = List.of( createProduct("001", 1000), createProduct("002", 2000) ); //when Order order = Order.create(products, LocalDateTime.now()); //then assertThat(order.getTotalPrice()).isEqualTo(3000); } private Product createProduct(String productNumber, int price) { return Product.builder() .type(HANDMADE) .productNumber(productNumber) .price(price) .sellingStatus(SELLING) .name("메뉴 이름") .build(); } @DisplayName("주문 생성시 주문 상태는 INIT 이다.") @Test void init(){ //given List<Product> products = List.of( createProduct("001", 1000), createProduct("002", 2000) ); //when Order order = Order.create(products, LocalDateTime.now()); //then assertThat(order.getOrderStatus()).isEqualByComparingTo(OrderStatus.INIT); } @DisplayName("주문 생성시 등록시간을 기록한다.") @Test void registeredDataTime(){ //given LocalDateTime registeredDateTime = LocalDateTime.now(); List<Product> products = List.of( createProduct("001", 1000), createProduct("002", 2000) ); //when Order order = Order.create(products, registeredDateTime); //then assertThat(order.getRegisteredDateTime()).isEqualTo(registeredDateTime); } Order.create 테스트 코드를 작성할때엔 각각 필드 초기화를 단위테스트 를 진행했는데, @DisplayName("주문번호 리스트를 받아 주문을 생성한다.") @Test void createOrder(){ LocalDateTime registeredDateTime = LocalDateTime.now(); Product product1 = createProduct(HANDMADE, "001", 1000); Product product2 = createProduct(HANDMADE, "002", 3000); Product product3 = createProduct(HANDMADE, "003", 5000); productRepository.saveAll(List.of(product1, product2, product3)); OrderCreateRequest request = OrderCreateRequest.builder() .productNumbers(List.of("001", "002")) .build(); OrderResponse orderResponse = orderService.createOrder(request, registeredDateTime); assertThat(orderResponse.getId()).isNotNull(); assertThat(orderResponse) .extracting("registeredDateTime","totalPrice") .contains(registeredDateTime,4000); assertThat(orderResponse.getProducts()).hasSize(2) .extracting("productNumber","price") .containsExactlyInAnyOrder( tuple("001",1000), tuple("002",3000) ); } createOrder 테스트 코드는 같이 검사 를 했습니다. 3. 각 초기화를 해주는 정적 매서드를 테스트 코드로 작성을 했는데 Order.create 테스트 코드는 필드마다 분리를 해서 테스트 코드를 작성하고, createOrder 테스트 코드는 같이 검사를 했습니다. 또 강의에는 없지만 ProductResponse.of 정적 메서드로도 초기화를 했는데 따로 분리해서 테스트 코드를 작성하지 않고 OrderServiceTest의 createOrder()에서 같이 테스트 코드에 포함되었습니다. 테스트 코드를 분리하는 경우와 같이 검사하는 경우를 나누는 기준이 있을까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
티벳로보 댓글 1 좋아요 1 조회수 930

OOP 란 무엇인가요?

미해결

Java/Spring 주니어 개발자를 위한 오답노트

최근 OOP 란 무엇인가요? 질문을 받았는대, 어버버한 경험이 있는대, 범위가 너무 광범위하여 답하기가 어렵습니다.

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
박경훈 댓글 2 좋아요 0 조회수 1414

강의를 다 듣고 몇가지 궁금점이 있어요

해결됨

Practical Testing: 실용적인 테스트 가이드

안녕하세요, 강의를 모두 들었고 정말 알차고 재밌게 다 들었습니다. 감사드립니다! 복습을 하다보니 실무 관점에서 몇가지 궁금한 부분들이 있는데요!! 1) JpaRepository 를 구현하는 구현체로 기본적인 CRUD 등 (ex. save(), saveAll() 등) 사용한다면, 이 부분도 별도 테스트를 작성하시나요? 전 이미 제공된 기본 메소드라 테스트 안해도 될 것 같다고 생각드는데 강사님은 실무에서 이부분도 하시는지 궁금합니다. 2) update/delete를 하게되면 저는 보통 void로 리턴값 없이 HttpStatus.ok 코드 정도만 보내곤했는데요. ApiResponse<Void> 이렇게 해서 보내도 무관할지 아니면 처리된 id값 정도라도 응답데이터에 실어서 보내는게 좋은가요? 3) 클라이언트에게 response하고 싶은 데이터가 API마다 다를 수 있는데 그럴때 서로 다른 Response DTO를 각자 만들어서 반환하시는 편인가요?? 제가 질문한 부분들은 할려면 다 할 수 있지만 좀 더 실무적인 관점에서의 방법이 궁금해서 여쭤봅니다! 감사합니다!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
lina 댓글 1 좋아요 2 조회수 486

6분28 초 카테고리 부모와 자식

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

@ManyToOne @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); 부모와 자식을 이렇게 설정해준다는데, 부모를 Many To One 자식을 One To Many 로 해주는게 이해가 안갑니다. 왜 이렇게 연관관계를 설정해 줘야 하는건가요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
김지수 댓글 1 좋아요 1 조회수 831

Presentation Layer 테스트 (1) 관련 질문이 있습니다!

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요! PresentationLayer 테스트(1) 수강하며 문득 든 궁금증이 있어서 질문을 드립니다. 강의 36:03 쯔음에서 Product 가 하나도 저장되지 않은 상태를 테스트할 때, 새로운 Product 의 최신 번호를 조회하게 되면 "001" 이 되는 과정에서 ActiveProfile 을 test 로 해주지 않아 DB에 데이터가 임의로 들어가 있던 것 때문에 테스트 통과가 되지 않았는데요. 그러면 그 전에 진행했던 createProduct 테스트의 given에서 Product 를 하나 저장한다면 여기서도 ActiveProfile 이 test 이지 않았던 상태였기 때문에 저장한 데이터가 4번째 데이터가 되어야 하고 그랬다면 테스트 통과가 안 되어야 하는게 맞지 않았나..? 하는 갑작스러운 의문이 들었습니다. 제가 놓치고 있는게 무엇일까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
비가싫어요 댓글 2 좋아요 0 조회수 1057

Spring REST Docs 관련 질문

해결됨

Practical Testing: 실용적인 테스트 가이드

안녕하세요 강사님, 우선 꿀팁 가득차있는 강의 너무너무 잘 들었습니다. Spring REST Docs 관련해서 질문이 있습니다. 강의에서는 이미 레이어별로 테스트 코드를 작성하였는데요. Spring REST Docs 적용하면서 별도의 ProductControllerDocsTest 클래스를 만들어 createProduct()의 동일한 테스트 코드가 문서를 위해 또 들어가는 것 같아 관리해야할 테스트 코드가 두배가 되는게 아닌가 궁금해서 질문드립니다! 실무에서는 이렇게 테스트 전용 테스트코드와 문서용 테스트 코드를 별도 분리하는지, 아니면 둘을 함께 포함하여 하나로 작성하는 방식인가요? ~ 감사합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
lina 댓글 1 좋아요 1 조회수 727

프로퍼티와 메서드의 초기화 질문입니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

public class student { public int score; public int getScore() { return this.score; } } 위와 같은 코드가 있고 연관관계 매핑이 되어있어 현재 프록시 상태라고 가정했을 때 점수를 얻기 위해 student.score를 사용 하면 영속성 컨텍스트로부터 초기화를 받지 못하고, student.getScoret()를 하면 초기화를 받는 건가요 ? 만약 프로퍼티 접근을 사용했을 때 초기화를 받지 모한다면 studnet.score 안에는 무슨 값이 들어있게 되는 건가요 ?

  • java
  • jpa
댓글 1 좋아요 0 조회수 344

fetch join 과 EAGER

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 제가 이해한게 맞을까요? 일단 기본적으로 type을 LAZY 로 하는 이유는 조회할때 한 방에 다른 엔티티까지 쿼리가 나가고 그거에 연관된 엔티티까지 쿼리가 나가면 비효율 적이다. 그래서 LAZY 를 쓰는데 조회할때 다른 Entity 의 값도 가져오려면 LAZY 타입이니 쿼리가 많이 나가서 fetch JOIN 으로 한 쿼리로 연결 시킨다. 그러면 EAGER 바꾸면 될 것같지만, EAGER 는 예측할 수 없는 문제도 있고, 다른곳에서 조회할때는 또 다른 엔티티의 값이 필요가 없을 수도 있기 때문에 기본은 LAZY로 해두고 다른 엔티티의 값이 필요한 특수한 경우에만 fetch JOIN 을 한다.

  • java
  • spring
  • spring-boot
  • jpa
dionisos198 댓글 1 좋아요 1 조회수 429

와 진짜 대박이네요 디폴트 파라미터 하나로 이렇게 편해질수가 ㅜ

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 자바 스프링에서는 테스트용 생성자 메서드가 있어도, 매번 일일히 null을 넣어준다거나 하는 문제점들이 있어서 결국 Builder를 사용했었는데 코틀린에서는 롬복 Builder가 지원되지 않는다고 해서 엄청 고민 중이였습니다 근데 이번 강의 보니까 그냥 온전한 객체 만들어주는 팩터리 메서드 하나 만들어놓고 테스트용으로 필요한 인자 값들만 설정해주면 되는 거였군요 진짜 미쳤다.. 갓틀린.. 잘 배워갑니다..

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
euni 댓글 1 좋아요 1 조회수 343

양방향 매핑

해결됨

Practical Testing: 실용적인 테스트 가이드

안녕하세요~ 양방향 매핑을 사용하면 엔티티 간의 결합도를 높이기 때문에 가급적 단방향으로 만들면 좋다는 의견도 많은 것 같더라구요. 심지어는 양방향 매핑을 만들어야 한다면 엔티티가 아니라 id 값을 넣어서 참조를 하는게 더 좋다는 의견도 있구요. 강의에서는 양방향 매핑을 사용하셨는데 실무에서도 자주 양방향 매핑으로 설계하시나요? 사용하신다면 이러한 단점이 있지만 편의성이 더 크기 때문인가요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
yhwjd 댓글 1 좋아요 1 조회수 739

인기 태그

인프런 TOP Writers

주간 인기글