안녕하세요 이 강의를 본격적으로 듣기 전에 자바강의를 충분히 이해하고 싶습니다 그래서 이것이 자바다 와 자바의 정석중에 고민이 됩니다 자바의 정석은 서점에 가도 밀봉되어있어 책 내용을 알수가없어서 고민이됩니다. 각자의 장단점이 뚜렷하겠지만 혹시 선생님이 추천해주실만한 자바 강의가 있을까요? 그리고 자바를 공부하는데 어느 부분이 제일 필요한지도 궁금합니다
컨트롤러에서 int i = menuSvc.doUpdate(coffeeMenu); 앞에 int i 변수선언을 하는 이유가 있을까요?? 강의 내용중 Mybatis 가 숫자를 반환해준다고 하신거같은데 살짝 이해가 안가서요 혹시 제가 국비 다니고있습니다.프로젝트 진행중인데 프론트 쪽이 리엑트 쓰는데 JSON형식으로 넘겨줘야한다고 하더라고요 RestComtroller 또는 Controller 클래스 레벨에 선언후 메소드에서 Responsbody 선언하고 똑같이 리턴은 String 으로 해서 View 페이지에 보내면될까요? 제가 다니는 학원에서는 리엑트를 안배우고 vue2 를 배워서 이부분이 너무 무지해서 좀 막막합니다
인증 거부 처리 -8:42 ) LoginController 에서 Account account = (Account) authentication.getPrincipal(); 이 가능 한 이유가 저희가 인증 객체를 CustomAuthenticationProvider코드에서 UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken( accountContext.getAccount() , null, accountContext.getAuthorities()); 로 토큰을 만들어서 스프링이 내부적으로 SecurityContext 안에 accountContext.getAccount(); (인증객체) 을 저장했기 때문에 가능하다고 이해했는데 맞나요 ?
Eralang 최신버전 다운 가정 하에 환경변수 ERLANG_HOME : C:\Program Files\Erlang OTP 추가 기존의 path 변수에 %ERLANG_HOME%\bin 추가 그 후 rabbitmq command prompt 여신 후 rabbitmq-server -detached rabbitmq-plugins enable rabbitmq_management 순서대로 입력 만약 안될 시에 rabbitmq-service.bat remove rabbitmq-service.bat install rabbitmq-server -detached rabbitmq-plugins enable rabbitmq_management 순서로 입력
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. model.addAttribute 하고 안에 값 넣었는데 이게 안먹네요 어떻게해야 해결할 수 있을까요? import 구문 따로 넣는게 있나요?
안녕하세요. 현재 김영한님의 JPA관련 강의들을 수강하면서 기존 프로젝트에서 JPA 로 변경시 문제가 있어 문의드립니다. 배운 것을 실적용할 경우 문제는, 테이블 설계시 제약사항이 테이블 간 연관관계 설정을 하지 않는 것입니다. 이 경우 도메인클래스를 어떻게 작성해야 할지 적절한 기준과 방법을 몰라 문의드립니다. 간략히 예를들어 DBA권고에 따라 외래키 설정은 모두 하지 않는다고 가정해서 아래와 같이 테이블을 생성했을 시에 | COMMENT | | COMMENT_IMAGE | | comment_id(PK)| | comment_img_id(PK)| | user_name(PK) | ------- X ------ | comment_img_name | | comment_id | /* DO NOT USE CONSTRAINT foreign key() references */ 따라서 기존에 아래와 같은 DTO가 있다면, public class Comment { .... private Long id; private String name; private List<CommentImage> commentImages; .... } 로 작성되어 있을 경우 아래와 같이 수정중인데 ... @IdClass(CommentId.class) public class Comment { .... @Id private Long id; @Id private String name; //@? private List<CommentImage> commentImages; .... } 기존에는 따로 CommentImage List<>를 조회해서 넣어주면 됐지만 cmt = DAO.getComment(id, name); cmt.setCommentImages( DAO.getCommentImageList( cmt.getId() ) ); return cmt; /* getComment SQL SELECT * FROM COMMENT WHERE COMMENT_ID = :id AND USER_NAME = :name; getCommentImageList SQL SELECT * FROM COMMENT_IMAGE WHERE COMMENT_ID = :comment_id; */ JPA의 경우 Domain 클래스에서 Join관련 어노테이션 설정이 없으면 Could not determine recommended JdbcType 오류가 발생합니다. 이 경우 연관관계 생성없이 도메인을 설계하고 사용하는 방법을 알 수 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 성능 테스트를 해보고 QueryHint 를 적용할지 고민하라고 하셨는데 성능 테스트란 정확하게 어떤 걸 의미하나요? 부하 테스트 인지 맞다면 예시가 뭐인지 궁금합니다. 그리고 성능 테스트를 하면 QueryHint 를 쓰는게 더 성능이 좋게 나올텐데 그럼 쓰는 게 낫지 않나 하는 궁금증이 듭니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 강사님,강의 정말 잘 듣고 있습니다! 40강 관련 질문입니다. git init 명령어를 터미널에서 사용하니 C:/Users/library-app/.git: Permission denied 이런 오류가 발생해서 git bash 에서 git init 을 사용해 보았더니 되더군요.그런데 git add . 입력하면 위와 같은 Permission denied 가 또 발생합니다.. git status 를 입력 하면 아래와 같이 나왔습니다 구글링 해 보니 ssh key 를 등록하라고 해서 따라서 해 보고 github repository 도 삭제했다가 다시 만들어서 실행 해 보았는데도 이렇습니다. 무슨 이유에서 인지 .gitignore 파일도 만들어지지 않습니다. 제가 구글링으로 해결하려고 이것저것 따라 하다가 더 꼬인 것 같긴 한데.... 도저히 어디서 부터 잘못된 것인지 모르겠어서 질문드립니다.
spring boot project 에서 hbase 를 사용하려고 하는데요, 영한님 강의를 들어보니 data-jpa 를 적용해보고 싶어졌습니다. 구글링해보니 apache-phoenix 구현체(JPA 인터페이스 구현체) 를 활용하면 된다는 이야기도 있긴하지만, 활용 사례가 많지 않아서 정보를 얻기 어려웠는데요~ 혹시 추천해주실 만한 hbase-JPA best practice가 있을까요?
[질문 내용] 여기에 질문 내용을 남겨주세요. 1. Tasks - other에 compileQuerydsl이 없어서 compileJava를 눌러서 했는데 괜찮은지 ?? 2.강사님과 다르게 build /generated 이렇게 생성되어도 문제가 없는지? 저런식으로 Q파일들이 생성되었는데 import가 안되고 사용이 안되는 이유 알려주시면 감사하겠습니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
책 이름 등록하고 사용자가 대여하는 기능을 하고있는데 책 대출 기능에서 사용자이름과 책이름을 입력하고 저장하게되면 내부 서버오류 500 뜨면서 java.lang.NullPointerException: null 이라고 나옵니다. 구글링을 해봤는데 해결이 안되서 질문드립니다.
ArticleApiController에서 return ArticleService.index(); 입력하고 create누르면 ArticleService 클래스에 이렇게 static으로 정의가 됩니다. 상관없을까요? 또, static으로 정의되는 이유가무엇일까요? 떼면 빨간줄이 생기네요 이상태로 Talent 로 테스트를 해보면(get) 이런 에러가 뜹니다. ArticleService.java :17은 이거구요, ArticleApiController.java :25는 이겁니다 이유가 무엇일까요? ㅜㅜ... 이런 현상이 일어나는 이유가 궁금합니다
안녕하세요 기존에는 CustomUserDetailsService 로 인증처리를 완료했는데 이때 AuthenticationProvider의 anthenticate 메서드 역할은 우리가 만든 loadUserByUsername + 스프링 시큐리티가 기본으로 제공하는 역할을 이용하였고 이번에 새로 추가한 CustomAuthenticationProvider 는 AuthenticationProvider의 anthenticate 역할을 커스터마이징 했다고 생각하면 되는걸까요 ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 환경변수에서 Java 8을 제거했는데 계속 이 오류가 뜹니다. java 17은 설치도 했고 환경변수 설정도 했습니다.
@Test void 회원가입() { //given Member member = new Member(); member.setName("hello"); //when Long saveId = memberService.join(member); //then ( 우리가 save한게 repository에 있는 것이랑 같아?를 찾는 로직) Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); //Assertions.assertThat(member.getName()).isEqualTo(findMember.getName()); } 위 회원가입 테스트 코드에서 처음에는 static으로 import 안해서 (1) >>>> Assertions.assertThat(member.getName()).isEqualTo(findMember.getName()); 이렇게썼다가 다시 import static org.assertj.core.api.Assertions.*;하면서 아래 로직으로 바꾸는 이유가 궁금합니다. (2) >>>> assertThat(member.getName()).isEqualTo(findMember.getName());굳이 바꾸는 이유가 무엇인지 궁금합니다. 오로지 가독성때문에 그러는것인가요? 그렇다면 처음부터 import static~으로는 import가 불가능한것인지도 궁금합니다! (1)처럼 쓴다음에 (2)로 다시 바꾸면서 import를 static으로 변경하는 방법만 있는지 궁금해서요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:98 ) 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:248 ) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance( SpringExtension.java:138 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8( ClassBasedTestDescriptor.java:363 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable( ClassBasedTestDescriptor.java:368 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9( ClassBasedTestDescriptor.java:363 ) 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:362 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6( ClassBasedTestDescriptor.java:283 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance( ClassBasedTestDescriptor.java:282 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4( ClassBasedTestDescriptor.java:272 ) at java.base/java.util.Optional.orElseGet( Optional.java:369 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5( ClassBasedTestDescriptor.java:271 ) at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances( TestInstancesProvider.java:31 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0( TestMethodTestDescriptor.java:102 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:101 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:66 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$prepare$2( NodeTestTask.java:123 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.prepare( NodeTestTask.java:123 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:90 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) at org.junit.platform.engine.support .hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) at org.junit.platform.engine.support .hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) 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:114 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) 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:232 ) at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:55 ) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\work\hello-spring\hello-spring\out\production\classes\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springConfig' defined in file [C:\work\hello-spring\hello-spring\out\production\classes\hello\hellospring\service\SpringConfig.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springDataJpaMemberRepository' defined in hello.hellospring.repository.SpringDataJpaMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data .repository.query.QueryCreationException: Could not create query for public abstract void hello.hellospring.repository.MemberRepository.clearStore(); Reason: Failed to create query for method public abstract void hello.hellospring.repository.MemberRepository.clearStore()! No property 'clearStore' found for type 'Member'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract void hello.hellospring.repository.MemberRepository.clearStore()! No property 'clearStore' found for type 'Member' at org.springframework.beans.factory.support .ConstructorResolver.createArgumentArray( ConstructorResolver.java:800 ) at org.springframework.beans.factory.support .ConstructorResolver.autowireConstructor( ConstructorResolver.java:229 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.autowireConstructor( AbstractAutowireCapableBeanFactory.java:1372 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBeanInstance( AbstractAutowireCapableBeanFactory.java:1222 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:582 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) 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.beans.factory.support .DefaultListableBeanFactory.preInstantiateSingletons( DefaultListableBeanFactory.java:955 ) at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:921 ) at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ... 71 more Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springConfig' defined in file [C:\work\hello-spring\hello-spring\out\production\classes\hello\hellospring\service\SpringConfig.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springDataJpaMemberRepository' defined in hello.hellospring.repository.SpringDataJpaMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data .repository.query.QueryCreationException: Could not create query for public abstract void hello.hellospring.repository.MemberRepository.clearStore(); Reason: Failed to create query for method public abstract void hello.hellospring.repository.MemberRepository.clearStore()! No property 'clearStore' found for type 'Member'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract void hello.hellospring.repository.MemberRepository.clearStore()! No property 'clearStore' found for type 'Member' at org.springframework.beans.factory.support .ConstructorResolver.createArgumentArray( ConstructorResolver.java:800 ) at org.springframework.beans.factory.support .ConstructorResolver.autowireConstructor( ConstructorResolver.java:229 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.autowireConstructor( AbstractAutowireCapableBeanFactory.java:1372 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBeanInstance( AbstractAutowireCapableBeanFactory.java:1222 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:582 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) 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.beans.factory.support .ConstructorResolver.instantiateUsingFactoryMethod( ConstructorResolver.java:410 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod( AbstractAutowireCapableBeanFactory.java:1352 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBeanInstance( AbstractAutowireCapableBeanFactory.java:1195 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:582 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) 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.beans.factory.config.DependencyDescriptor.resolveCandidate( DependencyDescriptor.java:276 ) at org.springframework.beans.factory.support .DefaultListableBeanFactory.doResolveDependency( DefaultListableBeanFactory.java:1391 ) at org.springframework.beans.factory.support .DefaultListableBeanFactory.resolveDependency( DefaultListableBeanFactory.java:1311 ) at org.springframework.beans.factory.support .ConstructorResolver.resolveAutowiredArgument( ConstructorResolver.java:887 ) at org.springframework.beans.factory.support .ConstructorResolver.createArgumentArray( ConstructorResolver.java:791 ) ... 89 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springDataJpaMemberRepository' defined in hello.hellospring.repository.SpringDataJpaMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data .repository.query.QueryCreationException: Could not create query for public abstract void hello.hellospring.repository.MemberRepository.clearStore(); Reason: Failed to create query for method public abstract void hello.hellospring.repository.MemberRepository.clearStore()! No property 'clearStore' found for type 'Member'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract void hello.hellospring.repository.MemberRepository.clearStore()! No property 'clearStore' found for type 'Member' at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) 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.beans.factory.config.DependencyDescriptor.resolveCandidate( DependencyDescriptor.java:276 ) at org.springframework.beans.factory.support .DefaultListableBeanFactory.doResolveDependency( DefaultListableBeanFactory.java:1391 ) at org.springframework.beans.factory.support .DefaultListableBeanFactory.resolveDependency( DefaultListableBeanFactory.java:1311 ) at org.springframework.beans.factory.support .ConstructorResolver.resolveAutowiredArgument( ConstructorResolver.java:887 ) at org.springframework.beans.factory.support .ConstructorResolver.createArgumentArray( ConstructorResolver.java:791 ) ... 112 more Caused by: org.springframework.data .repository.query.QueryCreationException: Could not create query for public abstract void hello.hellospring.repository.MemberRepository.clearStore(); Reason: Failed to create query for method public abstract void hello.hellospring.repository.MemberRepository.clearStore()! No property 'clearStore' found for type 'Member'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract void hello.hellospring.repository.MemberRepository.clearStore()! No property 'clearStore' found for type 'Member' at org.springframework.data .repository.query.QueryCreationException.create( QueryCreationException.java:101 ) at org.springframework.data.repository.core.support .QueryExecutorMethodInterceptor.lookupQuery( QueryExecutorMethodInterceptor.java:107 ) at org.springframework.data.repository.core.support .QueryExecutorMethodInterceptor.lambda$mapMethodsToQuery$1( QueryExecutorMethodInterceptor.java:95 ) at java.base/java.util.stream.ReferencePipeline$3$1.accept( ReferencePipeline.java:195 ) at java.base/java.util.Iterator.forEachRemaining( Iterator.java:133 ) at java.base/java.util.Collections$UnmodifiableCollection$1.forEachRemaining( Collections.java:1054 ) at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining( Spliterators.java:1801 ) 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.ReduceOps$ReduceOp.evaluateSequential( ReduceOps.java:913 ) at java.base/java.util.stream.AbstractPipeline.evaluate( AbstractPipeline.java:234 ) at java.base/java.util.stream.ReferencePipeline.collect( ReferencePipeline.java:578 ) at org.springframework.data.repository.core.support .QueryExecutorMethodInterceptor.mapMethodsToQuery( QueryExecutorMethodInterceptor.java:97 ) at org.springframework.data.repository.core.support .QueryExecutorMethodInterceptor.lambda$new$0( QueryExecutorMethodInterceptor.java:87 ) at java.base/java.util.Optional.map( Optional.java:265 ) at org.springframework.data.repository.core.support .QueryExecutorMethodInterceptor.<init>( QueryExecutorMethodInterceptor.java:87 ) at org.springframework.data.repository.core.support .RepositoryFactorySupport.getRepository( RepositoryFactorySupport.java:365 ) at org.springframework.data.repository.core.support .RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5( RepositoryFactoryBeanSupport.java:323 ) at org.springframework.data .util.Lazy.getNullable( Lazy.java:231 ) at org.springframework.data .util.Lazy.get( Lazy.java:115 ) at org.springframework.data.repository.core.support .RepositoryFactoryBeanSupport.afterPropertiesSet( RepositoryFactoryBeanSupport.java:329 ) at org.springframework.data.jpa.repository.support .JpaRepositoryFactoryBean.afterPropertiesSet( JpaRepositoryFactoryBean.java:144 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ... 123 more Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract void hello.hellospring.repository.MemberRepository.clearStore()! No property 'clearStore' found for type 'Member' at org.springframework.data .jpa.repository.query.PartTreeJpaQuery.<init>( PartTreeJpaQuery.java:96 ) at org.springframework.data .jpa.repository.query.JpaQueryLookupStrategy$CreateQueryLookupStrategy.resolveQuery( JpaQueryLookupStrategy.java:119 ) at org.springframework.data .jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery( JpaQueryLookupStrategy.java:259 ) at org.springframework.data .jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery( JpaQueryLookupStrategy.java:93 ) at org.springframework.data.repository.core.support .QueryExecutorMethodInterceptor.lookupQuery( QueryExecutorMethodInterceptor.java:103 ) ... 145 more Caused by: org.springframework.data .mapping.PropertyReferenceException: No property 'clearStore' found for type 'Member' at org.springframework.data .mapping.PropertyPath.<init>( PropertyPath.java:91 ) at org.springframework.data .mapping.PropertyPath.create( PropertyPath.java:438 ) at org.springframework.data .mapping.PropertyPath.create( PropertyPath.java:414 ) at org.springframework.data .mapping.PropertyPath.lambda$from$0( PropertyPath.java:367 ) at java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent( ConcurrentMap.java:330 ) at org.springframework.data .mapping.PropertyPath.from( PropertyPath.java:349 ) at org.springframework.data .mapping.PropertyPath.from( PropertyPath.java:332 ) at org.springframework.data .repository.query.parser.Part.<init>( Part.java:81 ) at org.springframework.data .repository.query.parser.PartTree$OrPart.lambda$new$0( PartTree.java:250 ) 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.Spliterators$ArraySpliterator.forEachRemaining( Spliterators.java:948 ) 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.ReduceOps$ReduceOp.evaluateSequential( ReduceOps.java:913 ) at java.base/java.util.stream.AbstractPipeline.evaluate( AbstractPipeline.java:234 ) at java.base/java.util.stream.ReferencePipeline.collect( ReferencePipeline.java:578 ) at org.springframework.data .repository.query.parser.PartTree$OrPart.<init>( PartTree.java:251 ) at org.springframework.data .repository.query.parser.PartTree$Predicate.lambda$new$0( PartTree.java:384 ) 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.Spliterators$ArraySpliterator.forEachRemaining( Spliterators.java:948 ) 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.ReduceOps$ReduceOp.evaluateSequential( ReduceOps.java:913 ) at java.base/java.util.stream.AbstractPipeline.evaluate( AbstractPipeline.java:234 ) at java.base/java.util.stream.ReferencePipeline.collect( ReferencePipeline.java:578 ) at org.springframework.data .repository.query.parser.PartTree$Predicate.<init>( PartTree.java:385 ) at org.springframework.data .repository.query.parser.PartTree.<init>( PartTree.java:93 ) at org.springframework.data .jpa.repository.query.PartTreeJpaQuery.<init>( PartTreeJpaQuery.java:89 ) ... 149 more Process finished with exit code -1 이런 오류가 납니다. 어디를 고쳐야 할까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니요) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의를 보고 엔티티를 설계하여 프로젝트를 진행하고 있습니다. 강의에서 말씀해주신대로 모든 FetchType을 LAZY로 하여 개발하고 있는데 문득 지연로딩이 실제로 어떤 상황에 필요한지가 궁금해졌습니다. 강의에서 말씀해주신대로 연관관계 매핑 데이터를 즉시 가져오지 않고 필요할 때 사용할 수 있도록 할 때 지연로딩을 사용한다는 것은 이해했습니다. 실무에서 어떤 상황에 적용되는지 찾아보니, 여러 이미지들을 스크롤하면서 이미지를 실제로 화면에서 보게 될 때 사용하면 효율적이라는 포스팅을 보았습니다. 그런데 또 실무에서는 OSIV를 off한다고 보았습니다. OSIV가 off라면 영속성 컨텍스트가 Service, Repository에서만 살아있게 되어 어쨌든 Service 단에서 모두 처리해야 하는데 그렇다면 지연로딩이나 즉시로딩이나 별 차이가 없는 것 아닌가요?? 혹시 제가 잘못 알고 있는 것이 있는지, 어떤 상황에서 지연로딩을 사용하는 것이 좋은지 궁금합니다. 감사합니다:)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 강사님의 강의를 쭉 따라들으며 진행하던 중, 데이터베이스까지 연동을 하여 localhost :8080에 회원 목록이 뜨는 것을 확인했습니다. 근데 회원 가입 페이지에서 shkim99라는 이름을 입력하고 엔터를 누른 뒤, localhost:8080 페이지로 갔다가 회원 목록을 눌러보니까 위 사진처럼 인덱스 번호가 2가 아닌 33으로 할당되어 있더라구요... 왜 그런걸까요?? 코드도 처음부터 끝까지 김영한 강사님과 똑같이 설정했습니다. 그리고 추가적으로 이번 강의의 내용은 실무에서 사용하지 않는 건가요?? 강사님께서 처음에 강의 시작하실 때 "고전 방식이라 우리 선배들은 이렇게 개발했구나~ 하면서 편하게 들으세요." 라고 하셨는데 이번 강의 내용 전체에 대한 말씀이신지 궁금하네요.