안녕하세요 제로초님 제가 현재 제로초님 강의를 듣고 따로 사용자 프로필 사진을 등록하는 기능을 작업중인데, 여기서 권한을 설정할 때 permissions 설정? 관련해서 질문을 드리려 합니다. 우선 저는 앱이 처음 실행될때 권한을 묻는게 아니라, 사용자가 프로필 사진을 등록을 할 대 권한 요청 창을 띄우고 싶어서 클릭시에 permission 을 불러오도록 했습니다. 권한을 묻고, 사용자가 수락(granted)을 하면 카메라 혹은 앨범 사진을 선택하게끔 하는 alert 창을 거절(blocked)을 하면 설정 창으로 넘어가는 모달 창을 구현을 했습니다. 여기서 문제는, 사용자가 권한 요청창의 바깥, 백그라운드를 선택했을 때 blocked 값이 반환된다는 것입니다. 사진처럼 바깥을 누르면 blocked 이 반환되어 설정창으로 이동하게끔 하는 모달이 뜨게 되어버리는데요 deny -> 권한 설정으로 이동하는 모달 이 뜨는건 자연스럽게 느껴지는데 바깥 백그라운드를 눌러서 권한 요청창을 껐는데 권한 설정으로 이동하는 모달 을 띄워지니까 좀 부자연스럽게 느껴지더라구요. 그래서 react-native-permissions 라이브러리를 쭉 읽어보았는데 이 바깥쪽을 눌렀을 때 반환되는 값을 제어하는 옵션을 찾지 못햇습니다 ㅠㅠ 제가 못찾는건지..모르겠지만 혹시 이 경우엔 배경을 눌렀을 때 다른 값을 반환하거나 값을 반환하지 않게 하는 방법은 있을 까요? 아니면 더 좋은 방법이 있을 까요? 제 코드와 실행시 배경을 눌러 권한요청창을 껐을 때 찍히는 결과값의 로그도 같이 첨부합니다! 공식문서를 읽었을 때 check 후 denine 이면 request 로 띄워주게 하는 것 같아서 작성해본 코드인데... 혹시 제 로직이 이상한거인지... 지금 이틀째 못풀고 있습니다ㅠㅠ 질문을 다시 요약하자면 react-native-permissions 에서 배경을 눌러 권한 창을 껐을 때 반환되는 값을 제어할 수 있는지? (현재는 blocked 가 반환 됩니다. 공식문서에 따로 관련 내용은 못찾았으나 혹시 알고 있는 방법이 있으실까요?) 해당 문제가 제 코드 로직의 문제인지 제가 좀 횡설수설 적어 이해하기 어려우실까봐 질문을 다시 요약드립니다.
@Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); return new JdbcMemberRepository(dataSource); return new JdbcTemplateMemberRepository(dataSource); return new JpaMemberRepository(em); } 안녕하세요 위 코드를 JPA 사용할 때까지 계속 사용했는데 스프링 데이터 JPA 사용할 때는 왜 주석 처리 하는지 궁금합니다. 좋은 강의 해주셔서 감사합니다.
array 문제들을 풀던 중 배열의 크기가 정해져 있을 때는 arraylist를 사용하지 않고 array를 사용하는 것 같던데 크기를 알고 있으면 array를 사용하는 것이 더 효율적인가요? arraylist를 사용하지 않고 array를 사용하였을 때의 장단점이 무엇인지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니요 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 추후에 면접시에 이론공부를 위해서 피피티내용이나 코드를 복사해서 블로그에 정리해놓고 싶은데 혹시 그렇게 해도 괜찮을까요? 물론 글 상단 및 하단에 김영한님의 어떤 강의를 듣고 정리해 놓은 내용이라는 부분을 작성해놓으려고 합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (있는데, 따라해 봐도 해결이 안됨) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 프로젝트 환경설정 과정에서 환경설정 마무리하고 메인을 실행하면 아레와 같은 메세지가 나옵니다. 유사한 사례가 있어 따라 해 보려고 했으나, 도저히 해결이 않되어 부득이 문의를 남깁니다. 감사합니다. 2022-11-27 17:23:00.193 INFO 13944 --- [ main] h.hellospring.HelloSpringApplication : Starting HelloSpringApplication using Java 11.0.17 on LAPTOP-DOCH344K with PID 13944 (C:\study\hello-spring\out\production\classes started by User in C:\study\hello-spring) 2022-11-27 17:23:00.199 INFO 13944 --- [ main] h.hellospring.HelloSpringApplication : No active profile set, falling back to 1 default profile: "default" 2022-11-27 17:23:02.989 INFO 13944 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9090 (http) 2022-11-27 17:23:03.008 INFO 13944 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2022-11-27 17:23:03.009 INFO 13944 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.69] 2022-11-27 17:23:03.303 INFO 13944 --- [ main] o.a.c.c.C.[Tomcat].[ localhost ].[/] : Initializing Spring embedded WebApplicationContext 2022-11-27 17:23:03.303 INFO 13944 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2993 ms 2022-11-27 17:23:03.673 INFO 13944 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index 2022-11-27 17:23:03.959 INFO 13944 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path '' 2022-11-27 17:23:03.973 INFO 13944 --- [ main] h.hellospring.HelloSpringApplication : Started HelloSpringApplication in 4.493 seconds (JVM running for 5.245)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 코드는 동일하게 입력하였고 commit도 진행하였습니다 저장도 하였고 실행도 하였습니다 경로도 동일한 것 같은데 이유가 무엇인지 여쭤봅니다 ,,,
익명 사용자 객체가 왜 있는지 잘 이해가 안됩니다 ㅠ. isAuthenticated == false 로 그냥 구분하면 되지 않나요? 왜 굳이 Anonymous 라는 객체를 따로 두는지 궁금합니다. 가령, 수업 중에 예시로 드신 로그인 페이지를 구성할 때, anonymous 이면 로그인 화면, authenticated 면 로그아웃 화면 이런식으로 사용한다 하셨습니다. 전자를 그냥 authenticated == false 로도 충분히 구분 가능한 것 같은데, 왜 굳이 anonymous 객체를 필터까지 기본 API로 두는지 궁금합니다. 그리고 httpSecurity 설정 부분에서 아무 부가 설정 없는 것 같은데, 그냥 기본으로 들어가는 필터로 보면 되는걸까요? 감사합니다.
안녕하세요~! 강의를 듣던 중 질문의 몇 가지 있어서 남기게 되었습니다. 1. https://www.inflearn.com/questions/497954 해당 질문에 답변에서 세션에는 Security Context가 저장되고, S.C 안에는 Authentication 객체가 저장되는 걸로 이해를 하였습니다. 스프링 입장에서 봤을 때, 특정 로그인 요청 > 인증 진행 > 인증 완료 및 Authentication 객체 형성 > Security Context에 저장 > 응답으로 쿠키에 세션을 넣어서 전달 의 순서로 이해를 했다면, Security Context 는 혹시 앱 내에 저장소? 같은 공간일까요? 앱 내의 스프링 컨테이너 역시 ApplicationContext처럼 Context 가 저장소 같은 느낌으로 쓰이는가 싶어서요. 만약 그렇다면, Security Context 에는 현재 앱에 "로그인이 되어 있다, 인증 되어 있다" 라고 하는 유저들의 Authentication 객체가 모두 저장되어 있는 것으로 이해를 해도 될까요? 또 만약 그렇다면, 각 유저에게 세션을 전달하게 되는데... Security Context를 어떻게 세션에 모두 넣어서 전달을 하는 걸까요..? 질문이 좀 난해하지만 유저에게 전달한다는 Session, Security Context가 정확히 무엇인지?에 대해서 궁금한 것 같습니다. 2. SessionID 를 주고 받음으로써 이미 "로그인 상태, 인증 상태" 를 판별할 수 있는 것 같은데, 굳이 remember-me 를 또 사용하는 이유는 뭔가요? 그리고 http.rememberMe() 설정 중에 갑자기 .userDetailService 가 등장했는데 그냥 설정만 해주시고 넘어간 것 같습니다. 해당 부분이 어떤 부분인지 알 수 있을까요? 감ㅅ합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 똑같이 진행하고 있는데 문제가 무엇인지 모르겠습니다... 정의되지 않았다고하는데 위에 첫 행에서 import로 선언해주었는데 왜 그런지 이해가 되지 않습니다 ,,
npm run dev를 하니 다음과 같은 오류가 납니다. PS C:\Users\82105\Downloads\boilerplate-mern-stack-master> npm run dev > react-boiler-plate@1.0.0 dev > concurrently "npm run backend" "npm run start --prefix client" [1] [1] > client@0.1.0 start [1] > react-scripts start [1] [0] [0] > react-boiler-plate@1.0.0 backend [0] > nodemon server/index.js [0] [0] [nodemon] 1.19.4 [0] [nodemon] to restart at any time, enter rs [0] [nodemon] watching dir(s): . [0] [nodemon] watching extensions: js,mjs,json [0] [nodemon] starting node server/index.js [0] (node:9916) Warning: Accessing non-existent property 'count' of module exports inside circular dependency [0] (Use node --trace-warnings ... to show where the warning was created) [0] Server Listening on 5000 [0] (node:9916) Warning: Accessing non-existent property 'findOne' of module exports inside circular dependency [0] (node:9916) Warning: Accessing non-existent property 'remove' of module exports inside circular dependency [0] (node:9916) Warning: Accessing non-existent property 'updateOne' of module exports inside circular dependency [0] MongoDB Connected... [1] [HPM] Proxy created: / -> http://localhost:5000 [1] i 「wds」: Project is running at http://192.168.123.163/ [1] i 「wds」: webpack output is served from [1] i 「wds」: Content not from webpack is served from C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\public [1] i 「wds」: 404s will fallback to / [1] Starting the development server... [1] [1] Error: error:0308010C:digital envelope routines::unsupported [1] at new Hash (node:internal/crypto/hash:71:19) [1] at Object.createHash (node:crypto:133:10) [1] at module.exports (C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\webpack\lib\util\createHash.js:135:53) [1] at NormalModule._initBuildHash (C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\webpack\lib\NormalModule.js:417:16) [1] at handleParseError (C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\webpack\lib\NormalModule.js:471:10) [1] at C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\webpack\lib\NormalModule.js:503:5 [1] at C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\webpack\lib\NormalModule.js:358:12 [1] at C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\loader-runner\lib\LoaderRunner.js:373:3 [1] at iterateNormalLoaders (C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\loader-runner\lib\LoaderRunner.js:214:10) [1] at iterateNormalLoaders (C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\loader-runner\lib\LoaderRunner.js:221:10) [1] C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\react-scripts\scripts\start.js:19 [1] throw err; [1] ^ [1] [1] Error: error:0308010C:digital envelope routines::unsupported [1] at new Hash (node:internal/crypto/hash:71:19) [1] at Object.createHash (node:crypto:133:10) [1] at module.exports (C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\webpack\lib\util\createHash.js:135:53) [1] at NormalModule._initBuildHash (C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\webpack\lib\NormalModule.js:417:16) [1] at C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\webpack\lib\NormalModule.js:452:10 [1] at C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\webpack\lib\NormalModule.js:323:13 [1] at C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\loader-runner\lib\LoaderRunner.js:367:11 [1] at C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\loader-runner\lib\LoaderRunner.js:233:18 [1] at context.callback (C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\loader-runner\lib\LoaderRunner.js:111:13) [1] at C:\Users\82105\Downloads\boilerplate-mern-stack-master\client\node_modules\babel-loader\lib\index.js:59:103 { [1] opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], [1] library: 'digital envelope routines', [1] reason: 'unsupported', [1] code: 'ERR_OSSL_EVP_UNSUPPORTED' [1] }
강사님 좋은 강의 정말 잘 듣고 있습니다. section2 까지 달렸는데, 그동안 모호하게 알고 있던 포트 포워딩 등 디테일한 내용까지 알려주셔서 얻어가는게 많은 강의였습니다. 질문) Jenkins 에서 Docker container 에 배포하기 위해 ssh 를 거치는 아키텍쳐를 설명해주셨습니다. 젠킨스에서 곧바로 도커로 배포하는게 아닌 ssh 를 거치는 이유가 무엇인지 알 수 있을까요? ssh 란 이름 자체로 유추해보건대 보안을 위한 과정이라 생각이 드는데, 혹시 다른 기술적 이유도 있는지 궁금합니다 :) 좋은 강의 정말 감사합니다. 얼른 마저 다 듣고싶네요
제로초님 안녕하세요? Redux 데이터는 내부 메모리에 저장되고 코딩 방식에 따라 Local Storage 등를 사용하면, 궁금한 점이 두가지 있습니다. 1 MobX 의 데이터도 기본적으로 내부 메모리에 저장하는가요? 2 그리고 Redux, MobX 를 기본적인 store에만 데이터를 저장하는 방식이 더 보안에 적합한지 궁금합니다. 추가적으로 Local Storage 를 사용하면 탈취의 위험이 있지 않은지요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 스프링 JPA 회원가입 테스트 도중에 컴퓨터가 멈춰서 h2 test.mv 를 다시 만들어서 IntelliJ를 실행해보니 다음과 같은 오류가 나타납니다. 다만, h2 test.mv 파일을 다시 만들 때 기존과 달리 연결로 파일이 생성되지 않아 h2 Database Engine을 활용해서 test.mv 파일을 만드느라 비밀번호를 설정하였습니다. 이후에 Intellij로 회원가입 test를 해보니 계속 오류가 발생해서 문의드립니다! java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:132 ) at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:244 ) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance( SpringExtension.java:138 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$6( ClassBasedTestDescriptor.java:350 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable( ClassBasedTestDescriptor.java:355 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$7( ClassBasedTestDescriptor.java:350 ) at java.base/java.util.stream.ReferencePipeline$3$1.accept( ReferencePipeline.java:195 ) at java.base/java.util.stream.ReferencePipeline$2$1.accept( ReferencePipeline.java:177 ) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining( ArrayList.java:1655 ) at java.base/java.util.stream.AbstractPipeline.copyInto( AbstractPipeline.java:484 ) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto( AbstractPipeline.java:474 ) at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining( StreamSpliterators.java:312 ) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:735 ) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:734 ) at java.base/java.util.stream.ReferencePipeline$Head.forEach( ReferencePipeline.java:658 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors( ClassBasedTestDescriptor.java:349 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$4( ClassBasedTestDescriptor.java:270 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance( ClassBasedTestDescriptor.java:269 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$2( ClassBasedTestDescriptor.java:259 ) at java.base/java.util.Optional.orElseGet( Optional.java:369 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$3( ClassBasedTestDescriptor.java:258 ) at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances( TestInstancesProvider.java:31 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0( TestMethodTestDescriptor.java:101 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:100 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:65 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$prepare$1( NodeTestTask.java:111 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.prepare( NodeTestTask.java:111 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:79 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:38 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$5( NodeTestTask.java:143 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$7( NodeTestTask.java:129 ) at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:127 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:126 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:84 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:38 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$5( NodeTestTask.java:143 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$7( NodeTestTask.java:129 ) at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:127 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:126 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:84 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:32 ) at org.junit.platform.engine.support .hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) at org.junit.platform.engine.support .hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:51 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:108 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:96 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:75 ) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs( JUnit5IdeaTestRunner.java:57 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:235 ) at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) 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:1786 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:602 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:524 ) at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:771 ) at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:763 ) at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:438 ) at org.springframework.boot.SpringApplication.run ( SpringApplication.java:339 ) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:123 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:99 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:124 ) ... 69 more 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 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:237 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) at org.hibernate.id .factory.internal.DefaultIdentifierGeneratorFactory.injectServices( DefaultIdentifierGeneratorFactory.java:152 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies( AbstractServiceRegistryImpl.java:286 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:243 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>( InFlightMetadataCollectorImpl.java:176 ) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:127 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1224 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1255 ) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1845 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1782 ) ... 85 more 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 ) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect( DialectFactoryImpl.java:54 ) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:137 ) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:35 ) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService( StandardServiceRegistryImpl.java:101 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:263 ) ... 102 more