묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
user와 post의 관계에 대해 명확하게 알고 싶습니다.
저 이외에도 여러 질문들이 있었지만, 확실하게 이해가 되지 않아 질문드립니다.insert into post(description, user_id) 이렇게 작성할 때, user_id 컬럼을 정의하지 않아도 자동으로 컬럼이 생기는게 이해가 가지 않습니다.제가 추측해보기로는 User에서 기본키를 id라고 지정해주었고, @OneToMany, @ManyToOne 으로 두 클래스의 관계를 정의를 한 상태라고 봤습니다.그 상태에서 클래스명_기본키명(즉, user_id)의 snake case로 작성하면 JPA가 이를 인식해서 자동으로 매핑시켜주는 것이 아닌가? 라고 추측을 해 봤는데.. 단순히 저의 생각이라 정리가 잘 되지 않습니다.제 생각 중에 어디가 맞고 틀린지 짚어주셨으면 좋겠습니다.
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
토이프로젝트 실행시 이메일 설정 부분에서 앱비밀번호 항목이 보이지 않습니다.
계정차이일 수 있겠지만, 해결방법을 찾을 수 있을까 하여 문의드립니다. 제 구글 계정은 앱비밀번호 항목이 없습니다. 혹시 다른 방법이 없을까요?
-
미해결실전! 스프링 데이터 JPA
단방향으로 코드를 짜도 Lazy 로딩으로 바꿔야하나요??
양방향으로 코드를 짤때 Lazy로 바꿔야하는건 이유를 아는데단방향일때는 굳이 안바꿔도 되지 않을까 생각이 들어 질문합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
MappedSuperClass 사용하는 경우 createdBy 외래키 제약조건
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]모든 테이블에 깔리는 createdBy, lastModifiedBy 값들의 경우 실제로는 member 테이블의 id(pk) 값일텐데요. @MappedSuperClass를 사용하면 테이블 매핑이 된 상태가 아니라 @ManyToOne 등이 불가한데, 실무에서는 외래키 제약조건을 어떻게 주로 처리하셨을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 테이블 생성이 되지 않습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요, 이전 강의의 MEMBER (id, username으로 구성된 테이블) 까지는 잘 생성이 되었는데 [엔티티 클래스 개발] 부터 DB가 업데이트 되지 않는 것 같습니다. 개발 환경 특이사항스프링부트 3.3 / JUnit5 현재 문제 상황애플리케이션 실행 시 Started Application까지 문제 없이 실행된 이후 쿼리가 찍히지 않음DB에는 변동이 없음 (MEMBER는 이전에 생성했던 테이블) 질문 전 확인 완료 사항프로젝트 처음 생성 시 생성되는 Application 클래스의 패키지 하위에 엔티티 클래스들이 위치함h2로 테이블 생성이 안됩니다.ddl-auto 옵션이 create로 설정되어 있음h2 테이블 생성이 안됩니다application.yml의 들여쓰기를 확인함h2 데이터베이스 테이블 생성이 안됩니다. DB url을 정확히 입력함 확인 부탁 드립니다. 감사합니다!
-
미해결실전! Querydsl
질문드립니다
@Test public void paging2() { QueryResults queryResults = queryFactory .selectFrom(member) .orderBy(member.username.desc()) .offset(1) .limit(2) .fetchResults(); assertThat(queryResults.getTotal()).isEqualTo(4); assertThat(queryResults.getLimit()).isEqualTo(2); assertThat(queryResults.getOffset()).isEqualTo(1); assertThat(queryResults.getResults().size()).isEqualTo(2); } 여기코드에서 queryResults 의 size 가 2인이유는 4/2인건가요? 3/2인건가요? offset이 1부터 시작인데 1부터 시작해야되는건지 0부터 시작해야되는건지 잘모르겠습니다..1부터 시작인데 왜 전체 개수가 4개인지도 의문이고 참고로 member에는 4개가 저장되어있습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의 내용중 커멘드라는 용어에 대해서 질문 있습니다.
강의 중 종종 나오는 "커멘드"가 어떤 의미를 뜻하는지 궁금합니다. 사전에 나오는 뜻 그대로를 의미하시는건지요..
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
변경감지
도메인 모델을 추가하고 그 도메인 모델 내부에서 작업을 처리하기 때문에 변경 감지 (dirty checking) 의 기능을 사용하지 못하게 되는 거 같은데요! 이 부분은 어느정도 포기를 하는걸까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강의자료 import부분
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1.프로젝트 환경설정 파일의 MemberRepositoryTest 파일의 import 부분이 강사님의 구조와 달라요!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
26강중 오류
26강 듣는중간에 실행 시켰는데 오류가 나오네요섹션3까지는 문제없이 잘 됐습니다.Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2024-05-26 21:37:17.517 ERROR 12508 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourceScriptDatabaseInitializer' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) ~[spring-context-5.3.24.jar:5.3.24] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) ~[spring-context-5.3.24.jar:5.3.24] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.24.jar:5.3.24] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.6.jar:2.7.6] at com.group.libraryapp.LibraryAppApplication.main(LibraryAppApplication.java:10) ~[main/:na]Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.24.jar:5.3.24] ... 21 common frames omittedCaused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.24.jar:5.3.24] ... 35 common frames omittedCaused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.util.Assert.state(Assert.java:97) ~[spring-core-5.3.24.jar:5.3.24] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:171) ~[spring-boot-autoconfigure-2.7.6.jar:2.7.6] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:123) ~[spring-boot-autoconfigure-2.7.6.jar:2.7.6] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:48) ~[spring-boot-autoconfigure-2.7.6.jar:2.7.6] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:90) ~[spring-boot-autoconfigure-2.7.6.jar:2.7.6] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.24.jar:5.3.24] ... 36 common frames omittedProcess finished with exit code 1 그리고 yml도 좀 이상합니다
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
26강중 오류
26강 듣는중간에 실행 시켰는데 오류가 나오네요섹션3까지는 문제없이 잘 됐습니다.Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2024-05-26 21:37:17.517 ERROR 12508 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourceScriptDatabaseInitializer' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) ~[spring-context-5.3.24.jar:5.3.24] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) ~[spring-context-5.3.24.jar:5.3.24] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.24.jar:5.3.24] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.6.jar:2.7.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.6.jar:2.7.6] at com.group.libraryapp.LibraryAppApplication.main(LibraryAppApplication.java:10) ~[main/:na]Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.24.jar:5.3.24] ... 21 common frames omittedCaused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.24.jar:5.3.24] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.24.jar:5.3.24] ... 35 common frames omittedCaused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.util.Assert.state(Assert.java:97) ~[spring-core-5.3.24.jar:5.3.24] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:171) ~[spring-boot-autoconfigure-2.7.6.jar:2.7.6] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:123) ~[spring-boot-autoconfigure-2.7.6.jar:2.7.6] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:48) ~[spring-boot-autoconfigure-2.7.6.jar:2.7.6] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:90) ~[spring-boot-autoconfigure-2.7.6.jar:2.7.6] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.24.jar:5.3.24] ... 36 common frames omittedProcess finished with exit code 1 그리고 yml도 좀 이상합니다
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 조인 시 쿼리 궁금증
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용][1. 일대다 조인]em.createQuery("select m from Team t join t.members m" , Member.class).getResultList();Member이 N이고 Team이 1일 때 일대다 조인으로 JPQL 쿼리를 Member만 조회되게 작성하면 Member 뿐만 아니라 Team까지 동시에 조회되는 것을 확인할 수 있었습니다. [2. 다대일 조인]em.createQuery("select m from Member m join m.team t" , Member.class).getResultList(); em.createQuery("select t from Member m join m.team t" , Team.class).getResultList();위와 같이 다대일 조인에선 제가 원하던대로 Member 조회 시 Member에 대한 조회 쿼리만 나가고 Team 조회 시 Team에 대한 조회 쿼리만 나가는 것을 확인할 수 있었습니다. [핵심 질문]다대일로 조인할 때는 제가 지정한 객체만 조회되는 것을 알 수 있었습니다.왜 일대다로 조인할 때는 [1.일대다 조인] 처럼 Member 뿐만 아니라 Team 까지 덩달아 조회되는 건지 궁금합니다 !※ 테스트는 전부 지연 로딩으로 진행하였고, [1. 일대다 조인]에서의 결과는 즉시 로딩과 지연 로딩 상관 없이 같은 결과가 나왔습니다.※ 각 테스트 간 독립성 확보를 위해 em.flush() , em.clear()로 영속성 컨텍스트를 깨끗하게 하면서 진행하였습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
cascade와 고아객체 질문있습니다.
@Entity @Getter @Setter public class Parent { @Id @GeneratedValue private Long id; private String name; @OneToOne(mappedBy = "parent") private Child child; public void addChild(Child child) { this.child = child; child.setParent(this); } } @Entity @Getter @Setter public class Child { @Id @GeneratedValue private Long id; private String name; @OneToOne @JoinColumn(name = "parent_id") private Parent parent; } 1. Parent와 child코드가 위와 같을 때 아래 코드에서 에러가 발생하는 이유는 양방향 매핑인데 child를 insert하지 않으니 Parent에 있는 child가 없는 것이 되므로 에러가 발생하는 것이 맞나요?Parent parent = new Parent(); Child child = new Child(); parent.addChild(child); em.persist(parent); ------------------------------------------------------------------------------- 2. mappedBy가 양방향 연관관계를 맺어주는 건데 단순히 아래와 같이 Parent에 있는 mappedBy를 없애면 단방향 연관관계로 바뀌는 건가요?(아래와 같이 단순히 mappedBy만 없앤 것과 child를 없앤것은 똑같이 단방향을 의미하게 되는 건가요?) public class Parent { @Id @GeneratedValue private Long id; private String name; // // mappedBy 만 없다면 이것도 child -> Parent 단방향이 되는 건가요? 아니라면 이 코드는 무슨 의미가 되는 코드인가요? @OneToOne private Child child; public void addChild(Child child) { this.child = child; child.setParent(this); } } public class Parent { @Id @GeneratedValue private Long id; private String name; public void addChild(Child child) { this.child = child; child.setParent(this); } } -------------------------------------------------------------------------------@Entity @Getter @Setter public class Parent { @Id @GeneratedValue private Long id; private String name; @OneToOne(mappedBy = "parent", fetch = FetchType.LAZY) private Child child; public void addChild(Child child) { this.child = child; child.setParent(this); } } @Entity @Getter @Setter public class Child { @Id @GeneratedValue private Long id; private String name; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_id") private Parent parent; public void addChild(Child child) { this.child = child; child.setParent(this); } } 3. 위의 코드와 같이 Parent, Child에 둘 다 fetch = FetchType.LAZY를 안하면 아래코드 실행시 join이 발생하는데 왜 발생하는 건가요?(Parent를 조회하는 것이니 Child에 LAZY를 해주어서 child를 조회하지 않게 한다는 것은 이해가 되는데 왜 Parent에도 LAZY를 해주어야 하나요?Parent의 @OneToOne이 EAGER라고 해도 Parent 조회하는 것만 EAGER이니 Parent에는 LAZY를 안해도 되것 같은데 왜 LAZY를 해주어야 하는지 궁금합니다.)Parent parent = new Parent(); Child child = new Child(); parent.addChild(child); em.persist(parent); em.persist(child); em.flush(); em.clear(); Parent findParent = em.find(Parent.class, parent.getId()); ------------------------------------------------------------------------------- 4. 3번 질문 코드에서 em.find() 때 쿼리를 보면 select parent와 select child를 하는데 select child 쿼리는 왜 나가는 건가요? LAZY로 동작하지 않고 EAGER로 동작하는 것 같은데 왜 그런건가요? ------------------------------------------------------------------------------- @Entity @Getter @Setter public class Parent { @Id @GeneratedValue private Long id; private String name; @OneToOne(mappedBy = "parent", fetch = FetchType.LAZY, cascade = CascadeType.ALL) private Child child; public void addChild(Child child) { this.child = child; child.setParent(this); } } @Entity @Getter @Setter public class Child { @Id @GeneratedValue private Long id; private String name; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_id") private Parent parent; public void addChild(Child child) { this.child = child; child.setParent(this); } } 5. 강의에서와 같이 리스트인 child를 삭제하려면 findParent.getChildList().remove(0); 과 같이 하는데, @OneToOne의 경우에는 어떻게 하면 되나요? 아래와 같이 Parent의 child 값을 null로 만든 뒤에 remove를 하면 delete 쿼리가 나가는데 이렇게 하면 될까요? 혹시 다른 좋은 방법이 있을까요?Child child1 = findParent.getChild(); findParent.setChild(null); em.remove(child1); 그리고 아래 코드와 같이 하면 삭제가 왜 안되는 건가요?Parent findParent = em.find(Parent.class, parent.getId()); em.remove(child);
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
외부 트랜잭션 롤백 시점
여러개의 내부 트랜잭션 중에 하나의 내부 트랜잭션에서 롤백 요청이 와도 나머지 로직이 모두 수행되고 외부트잭션이 커밋 요청을 하는 시점에 rollbackOnly 값을 체크하고 true인 것을 확인하고 물리 롤백을 한다는 말씀이신가요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품카테고리테스트/ 테스트디비접속오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 안녕하세요, 제가 강사님 강의를 듣고 강의 부분에 없는 카테고리 부분을 테스트 해보았는데요https://drive.google.com/file/d/1ahr-kGf3jim0rx8vVzROBz_Qk_DchCSi/view?usp=sharing테스트시 초록색표시로 통과는 됐는데 막상 테스트 db로 접속해서 (테스트코드에 transactional commit 어노테이션했습니다). 보려니 테스트 디비로 들어가지지 않습니다 ㅜ 테스트 디비로 들어가는 방법을 잊어서 어떻게 들어가서 확인을 해야하는지 모르겠는데 방법 가르쳐주실 수 있을까요?
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요
[로그인 로그아웃] 강의까지 수강했는데 도저히 막막해서 고민하다가 답답한 마음에 올립니다.홈-가입-정보입력-로그인 눌러도 정보가 나타나지 않고 로그인/가입도 프로필/알림 이런 게 아예 안 뜹니다.그리고 로그인탭을 누르면 우리가 만든 로그인 폼이 아니라 시큐리티 로그인으로 이동하고, 시큐리티 로그인을 해도 시큐리티 로그인화면이 localhost:8080/login으로 나올 뿐입니다.로그인이 잘 돼서 로그인/가입이 프로필/알림 등으로 잘 보일 수 있도록 코드 어떻게 수정하면 좋을지 도와주세요. 가장 마지막까지 작성한 코드입니다. [로그인로그아웃 13:20]까지 수강했습니다. https://drive.google.com/file/d/1D3FexWWHLE0SZrdumtZVRmuqJFP5Atl6/view?usp=sharing
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Repository에서 체크 예외를 사용하면
이전에 체크 예외, 언체크 예외 강의때 예외가 종속이 되서 언체크 예외로 보통 한다고 하셨는데요. 그럼 리포지토리를 체크 예외로 구현해놨으면 서비스에서 @Transaction 애노테이션을 추가해도 롤백 처리가 안된다는 건가요??회사에서 back-to-back으로 서비스 단에서 다른서버로 API를 호출할 때 롤백을 해야 하는 경우, 롤백처리를 어떻게 해야 하나요??이런 경우에는 서버에서 내려주는 응답을 보고 언체크 예외를 발생시켜서 트랜잭션이 롤백할 수 있게 해줘야 하는건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
주 테이블 대상 테이블이 뭔가요?
더 자주 접근하는 테이블을 주 테이블이라고 일컫는건가요?
-
미해결실전! Querydsl
EntityManager와 멀티쓰레드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]EntityManager가 멀티스레드 상황에서 안전하게 작성되있다고 하셨는데 그걸 확인하기 위해서는 어느 부분을 확인하면 될까요? 제가 queryFactory와 비슷하게 작동하는 외산 패키지를 쓰고 있는데 그것도 멀티스레드에 안전한지 확인하고 싶어서 질문 남깁니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 매핑 시 stackoverflow 발생
[질문 템플릿]1. 예2. 예3. 예[질문 내용]양방향 매핑 시 순환 참조때문에 toString 메서드에서 StackOverflowError가 발생할 수 있는데, toString 메서드에서 연관관계 참조 부분은 제외하는 방법으로 해결해서 사용하는 것이 일반적인가요?toString 메서드는 AutoValue나 IDE의 도움을 받아 작성하는 것이 일반적인 방법이라고 알고 있는데(이펙티브 자바 등등), 위 방법처럼 stackoverflow만 피하는 것이 옳은 방법인지 궁금해서 질문합니다.