176만명의 커뮤니티!! 함께 토론해봐요.
해결됨
자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요 jpa 엔티티의 생명주기 공부를 하다 궁금한게 생겨 질문드립니다. JPA 기본편 3번 pdf 영속성관리의 10페이지 엔티티의 생명주기 그래프를 보면 removed 상태에서 flush() 를 해주면 DB에 반영되는것 같습니다. 동일 pdf의 25번 페이지에는 플러시란 영속성 컨텍스트의 변경내용을 데이터베이스에 반영하는 것 이라고 되어있는데 그렇다면 removed 상태라는 것은 객체의 인스턴스는 메모리상에서 삭제되었지만 객체가 가지고 있던 데이터는 영속성 컨텍스트에 의해 관리되고 있다고 생각해도 되나요? removed 상태가 정확히 어떤 상태인지 궁금합니다.
미믹
2023-02-27T01:32:07.647Z
댓글 1
좋아요 0
조회수 518
미해결
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요! 강의 열심히 듣고 있는 수강생입니다! 수강 중에 오류가 발생했는데 해결이 잘 되지 않습니다. 어떻게 해결해야할 지 알 수 있을까요?? 다른 질문 참고해서 UserConfig는 삭제해보았습니다.
java JPA aws spring jpa spring-boot mysql
Joohan Park
2023-02-26T23:45:42.657Z
댓글 1
좋아요 1
조회수 424
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요. 윈도우 사용자이고 인텔리제이 + 깃 배쉬를 연동했는데요.,. ./gradlew가 안돼서요!! 구글, 그리고 인프런에 올라와있는 질문, 답변 참고해서 해봤는데도 안되서 올립니다.
java 웹앱 웹앱 spring jpa spring-boot JPA
윤토벤
2023-02-26T15:07:57.054Z
댓글 2
좋아요 0
조회수 771
미해결
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 선생님. CalculatorAddRequest 클래스에서 number1과 number2를 private final로 설정하는 이유가 무엇인가요? 감사합니다.
java mysql spring JPA jpa spring-boot aws
2023-02-26T12:50:02.986Z
댓글 1
좋아요 1
조회수 452
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
제가 강의 내용 중 놓친건지는 모르겠지만 저와 같은 상황인 경우 item 에서 @Setter 어노테이션을 활성화 시 문제가 해결됩니다
spring 웹앱 spring-boot java jpa 웹앱 JPA
HB
2023-02-26T12:04:42.318Z
댓글 1
좋아요 6
조회수 702
해결됨
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
예외 처리 부분이니까 주석 처리하면 실행될까 했는데 아래와 같은 에러메시지가 나옵니다. 혹시 몰라 전체 코드를 깃헙에 업로드해놓겠습니다! https://github.com/you-eun-hye/library-app-Inflearn
java mysql aws spring-boot jpa JPA spring
유은혜
2023-02-26T11:51:40.279Z
댓글 1
좋아요 1
조회수 412
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요~ findParent.getChildList().remove(0); 강의에서 설명주신 위 코드에 대해 추가 질문이 있습니다. 컬렉션에서 첫번째 child 엔터티를 제거한 경우에 고아 객체가 되어 delete 쿼리가 실행되는 것으로 이해를 했는데요. @OneToMany(mappedBy = "XXX", orphanRemoval = true) orphanRemoval만으로는 delete 쿼리가 실행되지 않고, cascade = CascadeType.PERSIST 가 함께 실행된 경우에만 delete 쿼리가 실행되더라구요. @OneToMany(mappedBy = "XXX", orphanRemoval = true, cascade = CascadeType.PERSIST) 혹시 orphanRemoval 설정만으로는 영속성 전이가 일어나지 않고 cascade = CascadeType.PERSIST 을 추가해야지만, findParent.getChildList().remove(0); 호출시에 고아객체가 된 child 엔티티의 생명주기까지 영향을 미칠 수 있게 되어 delete 쿼리가 실행이 되는 것인지 여쭤보고 싶습니다. (즉, 'orphanRemoval'과 '영속성 전이' 설정을 독립적으로 봐야하는 것인지 궁금합니다.) 감사합니다.
raccoon
2023-02-26T04:32:28.197Z
댓글 1
좋아요 0
조회수 662
해결됨
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 제가 영한님 강의를 보고 혼자 간단한 프로젝트를 진행해보고 있는데, Order 조회시 OrderItem과 같은 List의 갯수를 알고 싶어 count 쿼리를 사용하려고 합니다. 이때, 1. JPA에서 DTO 직접 조회가 아닌 fetch join 하여 엔티티로 조회한 이후에 count 값 (갯수)를 얻을 수 있을까요?? 그리고 2. 컬렉션 페치조인은 1개만 가능하다 하였는데, 예를 들어 Order에 OrderItem 과 List가 하나더 추가 되었을 때, 각 리스트의 count 갯수를 알고싶으면 DTO직접 조회에서 count 쿼리를 사용하는게 맞을까요? 항상 강의 잘 듣고있습니다. 감사합니다
JPA java jpa spring-boot spring
유호빈
2023-02-26T02:51:22.213Z
댓글 1
좋아요 0
조회수 745
해결됨
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 공부하는 개발자 최태현님! 강의가 너무 재밌어서 23강까지 후딱 와버린 지금, 두번째 질문 드리게 되었네요 ㅎㅎ 오늘도 감사한 마음을 가지고 바로 본론으로 넘어가보도록 하겠습니다~ (2월 26일 오전 11시 50분 3번질문 추가) 22강까지 마치고 나서 데이터 접근 기술에 대해 더 알아보았는데요! 크게 아래와 같은 5가지 기술을 사용하고 있다고 하더라구요 SQLMapper JDBC Template MyBatis ORM 기술 JPA, Hibernate Spring Data JPA Querydsl 이 중, JDBC Template과 JPA쪽은 본 강의에서 다루고 있고 Querydsl은 [실전!코틀린과 스프링부트로 도서관리 애플리케이션 개발하기(Java프로젝트 리팩토링)]에서 배울 수 있는 것 같은데,, MyBatis 같은 경우는 따로 다루고 계신 것 같지 않아서 독학으로 해보고자 하고 있는 상태입니다..ㅠ 그래서 문의 드리고자 하는 부분은, MyBatis를 따로 강의에서 다루지 않으신 이유! 도서관리 애플리케이션에 MyBatis를 적용해보려면? 2-1. 혹시 강의 내용에 업데이트 해주실 수 있으신지...!?(영상이나 문서등의 강의자료) MyBaits 검색하다보니 DAO & VO 같은 것들을 보게되었는데, 본 강의에서 배운 [외부 API 호출- DTO | Controller - Service - Repository - 데이터베이스]것과 유사해보이는데, 어떤 차이가 있는지 궁금해요! 크게 이렇게 3가지 입니다... 사실 2번(+2-1)은 조금 양심에 찔리는 문의 내용같기도 하네요 ㅠ 2번은 사실 스스로 찾아서 적용해보는 노력으로 얻는 결과가 제일 본인에게 도움이 되는 것을 알고 있으나,, 생각보다 이게 쉽지 않더라구요 ㅠㅠ.. 계속 시도하다가 답답해진 마음을 조금 담아 이렇게 문의 글 드려봅니다..!! 오늘도 질의응답 퀄리티마저도 훌륭한 태현님의 강의를 들으며 공부 이어가고 있겠습니다~ 미리 답변 감사드리며, 행복한 하루 보내시길 바랄게요~! 감사합니다 행복하세요~
JPA spring aws spring-boot mysql java jpa spring-boot mybatis
jk s
2023-02-26T02:27:49.564Z
댓글 2
좋아요 2
조회수 872
미해결
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요! Kafka Docker-compose기동시 connect는 어떻게 설정하나요? 강의내용에는 이 부분이 생략된 것 같아서 질문합니다!
jpa spring-cloud 아키텍처 architecture JPA spring-boot kafka Kafka msa
S-J L
2023-02-26T00:24:48.618Z
댓글 1
좋아요 0
조회수 1194
미해결
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요. asw ec2에서 코드 가져올때, 처음에 git clone 으로 git에 있는 소스 전체를 가져왔는데요, 이후에 수정된 파일을 배포할때도, git clone으로 하면되나요? 아니면 다른 명령어가 있는건가요.?
aws spring java JPA mysql jpa spring-boot
8월19시30분김서욱
2023-02-25T10:38:57.633Z
댓글 1
좋아요 1
조회수 493
미해결
스프링과 JPA 기반 웹 애플리케이션 개발
안녕하세요. 모임 만들기 페이지에서 시간을 설정할 때, 연월일 제외하고 시간만 입력하려면 어떻게 하면 되는지요? fragments.html 의 <div th:fragment="event-form (mode, action)"> 에서 <input id="endEnrollmentDateTime" type="datetime-local" 의 type 부분을 type="time" 으로 하고 Event 클래스에서 private LocalDateTime endEnrollmentDateTime; 을 private DateTime endEnrollmentDateTime; 로 변경하고 실행하면 html 상에서는 시간이 입력되나, DB 에는 insert 되어 있지 않습니다. 어떻게 하면 가능한지요? 자세한 설명 부탁드립니다. 그리고, 제공해 주신 소스를 다운로드해서 프로젝트를 실행한 후, 오른쪽 드롭다운 메뉴 중 스터디를 클릭해도 아무 동작이 일어나지 않습니다. 소스를 보면 <a class="dropdown-item" >스터디</a> 이렇게만 나와있고 th:href="@{}" 로 연결된 페이지가 없습니다. 이 부분 기능 구현은 안 해 놓으신 건지요? 프로필 페이지에서도 왼쪽 프로필 사진 밑에 있는 스터디 버튼을 누르면 Study 라고만 나오고 별다른 페이지가 나오지 않습니다. 이 부분도 기능 구현은 안 해 놓으신 건지요?
java spring spring-boot jpa JPA spring-boot thymeleaf
박종성
2023-02-25T09:38:06.303Z
댓글 1
좋아요 0
조회수 487
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
오류가 뜨는데 강의 코드랑은 똑같이 쳤고, 오류 코드 찾아봐도 해결이 안되서 질문합니다! 오류 코드: 2023-02-25 17:11:35.867 INFO 18568 --- [ Test worker] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@4d4d48a6 testClass = MemberRepositoryTest, testInstance = jpabook.jpashop.MemberRepositoryTest@637c8632, testMethod = testMember@MemberRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@315df4bb testClass = MemberRepositoryTest, locations = '{}', classes = '{class jpabook.jpashop.JpashopApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@726e5805, org.springframework.boot.test.autoconfigure.properties .PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@5b07730f, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@f73dcd6, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@30d4b288, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@4a3329b9, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@407a7f2a], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]]; transaction manager [org.springframework.orm.jpa.JpaTransactionManager@3adeca1f]; rollback [false] 2023-02-25 17:11:36.439 DEBUG 18568 --- [ Test worker] org.hibernate.SQL : call next value for hibernate_sequence findMember == member : true 2023-02-25 17:11:36.739 DEBUG 18568 --- [ Test worker] org.hibernate.SQL : insert into member (username, id) values (?, ?) 2023-02-25 17:11:36.744 WARN 18568 --- [ Test worker] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 42122, SQLState: 42S22 2023-02-25 17:11:36.744 ERROR 18568 --- [ Test worker] o.h.engine.jdbc.spi.SqlExceptionHelper : Column "USERNAME" not found; SQL statement: insert into member (username, id) values (?, ?) [42122-214] 2023-02-25 17:11:36.823 WARN 18568 --- [ Test worker] o.s.test.context.TestContextManager : Caught exception while invoking 'afterTestMethod' callback on TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener@54a3ab8f] for test method [public void jpabook.jpashop.MemberRepositoryTest.testMember() throws java.lang.Exception] and test instance [jpabook.jpashop.MemberRepositoryTest@637c8632] org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [insert into member (username, id) values (?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException( HibernateJpaDialect.java:259 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible( HibernateJpaDialect.java:233 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:566 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.transaction.support .AbstractPlatformTransactionManager.processCommit( AbstractPlatformTransactionManager.java:743 ) ~[spring-tx-5.3.25.jar:5.3.25] at org.springframework.transaction.support .AbstractPlatformTransactionManager.commit( AbstractPlatformTransactionManager.java:711 ) ~[spring-tx-5.3.25.jar:5.3.25] at org.springframework.test.context.transaction.TransactionContext.endTransaction( TransactionContext.java:131 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod( TransactionalTestExecutionListener.java:255 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.afterTestMethod( TestContextManager.java:445 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach( SpringExtension.java:206 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAfterEachCallbacks$12( TestMethodTestDescriptor.java:257 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$13( TestMethodTestDescriptor.java:273 ) ~[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.lambda$invokeAllAfterMethodsOrCallbacks$14( TestMethodTestDescriptor.java:273 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAllAfterMethodsOrCallbacks( TestMethodTestDescriptor.java:272 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAfterEachCallbacks( TestMethodTestDescriptor.java:256 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:141 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:66 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:151 ) ~[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 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 ) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) ~[na:na] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses( JUnitPlatformTestClassProcessor.java:99 ) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000( JUnitPlatformTestClassProcessor.java:79 ) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop( JUnitPlatformTestClassProcessor.java:75 ) ~[na:na] at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop( SuiteTestClassProcessor.java:62 ) ~[na:na] 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.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) ~[na:na] at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) ~[na:na] at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch( ContextClassLoaderDispatch.java:33 ) ~[na:na] at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) ~[na:na] at com.sun.proxy.$Proxy2.stop(Unknown Source) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run( TestWorker.java:193 ) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName( TestWorker.java:129 ) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:100 ) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:60 ) ~[na:na] at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute( ActionExecutionWorker.java:56 ) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:113 ) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:65 ) ~[na:na] at worker.org.gradle.process.internal.worker.GradleWorkerMain.run ( GradleWorkerMain.java:69 ) ~[gradle-worker.jar:na] at worker.org .gradle.process.internal.worker.GradleWorkerMain.main( GradleWorkerMain.java:74 ) ~[gradle-worker.jar:na] Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert( SQLExceptionTypeDelegate.java:63 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert( StandardSQLExceptionConverter.java:37 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert( SqlExceptionHelper.java:113 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:186 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement( StatementPreparerImpl.java:81 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.buildBatchStatement( AbstractBatchImpl.java:142 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.getBatchStatement( AbstractBatchImpl.java:131 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.persister.entity.AbstractEntityPersister.insert( AbstractEntityPersister.java:3356 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.persister.entity.AbstractEntityPersister.insert( AbstractEntityPersister.java:3937 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.action.internal.EntityInsertAction.execute( EntityInsertAction.java:107 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.spi.ActionQueue.executeActions( ActionQueue.java:604 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.spi.ActionQueue.lambda$executeActions$1( ActionQueue.java:478 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at java.base/java.util.LinkedHashMap.forEach( LinkedHashMap.java:684 ) ~[na:na] at org.hibernate.engine.spi.ActionQueue.executeActions( ActionQueue.java:475 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions( AbstractFlushingEventListener.java:344 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.event.internal.DefaultFlushEventListener.onFlush( DefaultFlushEventListener.java:40 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener( EventListenerGroupImpl.java:107 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.internal.SessionImpl.doFlush( SessionImpl.java:1407 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.internal.SessionImpl.managedFlush( SessionImpl.java:489 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion( SessionImpl.java:3303 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.internal.SessionImpl.beforeTransactionCompletion( SessionImpl.java:2438 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion( JdbcCoordinatorImpl.java:449 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback( JdbcResourceLocalTransactionCoordinatorImpl.java:183 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300( JdbcResourceLocalTransactionCoordinatorImpl.java:40 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit( JdbcResourceLocalTransactionCoordinatorImpl.java:281 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.transaction.internal.TransactionImpl.commit( TransactionImpl.java:101 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:562 ) ~[spring-orm-5.3.25.jar:5.3.25] ... 77 common frames omitted Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "USERNAME" not found; SQL statement: insert into member (username, id) values (?, ?) [42122-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) ~[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.command.CommandRemote.prepare( CommandRemote.java:78 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.CommandRemote.<init>( CommandRemote.java:50 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.prepareCommand( SessionRemote.java:480 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcConnection.prepareCommand( JdbcConnection.java:1116 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcPreparedStatement.<init>( JdbcPreparedStatement.java:92 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcConnection.prepareStatement( JdbcConnection.java:288 ) ~[h2-2.1.214.jar:2.1.214] at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement( ProxyConnection.java:337 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement( HikariProxyConnection.java ) ~[HikariCP-4.0.3.jar:na] at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare( StatementPreparerImpl.java:90 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:176 ) ~[ hibernate-core-5.6.15.Final .jar: 5.6.15.Final ] ... 100 common frames omitted could not prepare statement; SQL [insert into member (username, id) values (?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [insert into member (username, id) values (?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException( HibernateJpaDialect.java:259 ) at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible( HibernateJpaDialect.java:233 ) at app//org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:566 ) at app//org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit( AbstractPlatformTransactionManager.java:743 ) at app//org.springframework.transaction.support.AbstractPlatformTransactionManager.commit( AbstractPlatformTransactionManager.java:711 ) at app//org.springframework.test.context.transaction.TransactionContext.endTransaction( TransactionContext.java:131 ) at app//org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod( TransactionalTestExecutionListener.java:255 ) at app//org.springframework.test.context.TestContextManager.afterTestMethod( TestContextManager.java:445 ) at app//org.springframework.test.context.junit.jupiter.SpringExtension.afterEach( SpringExtension.java:206 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAfterEachCallbacks$12( TestMethodTestDescriptor.java:257 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$13( TestMethodTestDescriptor.java:273 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$14( TestMethodTestDescriptor.java:273 ) at java.base@11.0.16.1/java.util.ArrayList.forEach( ArrayList.java:1541 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAllAfterMethodsOrCallbacks( TestMethodTestDescriptor.java:272 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAfterEachCallbacks( TestMethodTestDescriptor.java:256 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:141 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:66 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:151 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@11.0.16.1/java.util.ArrayList.forEach( ArrayList.java:1541 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@11.0.16.1/java.util.ArrayList.forEach( ArrayList.java:1541 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) at app//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 org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses( JUnitPlatformTestClassProcessor.java:99 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000( JUnitPlatformTestClassProcessor.java:79 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop( JUnitPlatformTestClassProcessor.java:75 ) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop( SuiteTestClassProcessor.java:62 ) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@11.0.16.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) at java.base@11.0.16.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@11.0.16.1/java.lang.reflect.Method.invoke( Method.java:566 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch( ContextClassLoaderDispatch.java:33 ) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) at com.sun.proxy.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run( TestWorker.java:193 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName( TestWorker.java:129 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:100 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:60 ) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute( ActionExecutionWorker.java:56 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:113 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:65 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run( GradleWorkerMain.java:69 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main( GradleWorkerMain.java:74 ) Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement at app//org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert( SQLExceptionTypeDelegate.java:63 ) at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert( StandardSQLExceptionConverter.java:37 ) at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert( SqlExceptionHelper.java:113 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:186 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement( StatementPreparerImpl.java:81 ) at app//org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.buildBatchStatement( AbstractBatchImpl.java:142 ) at app//org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.getBatchStatement( AbstractBatchImpl.java:131 ) at app//org.hibernate.persister.entity.AbstractEntityPersister.insert( AbstractEntityPersister.java:3356 ) at app//org.hibernate.persister.entity.AbstractEntityPersister.insert( AbstractEntityPersister.java:3937 ) at app//org.hibernate.action.internal.EntityInsertAction.execute( EntityInsertAction.java:107 ) at app//org.hibernate.engine.spi.ActionQueue.executeActions( ActionQueue.java:604 ) at app//org.hibernate.engine.spi.ActionQueue.lambda$executeActions$1( ActionQueue.java:478 ) at java.base@11.0.16.1/java.util.LinkedHashMap.forEach( LinkedHashMap.java:684 ) at app//org.hibernate.engine.spi.ActionQueue.executeActions( ActionQueue.java:475 ) at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions( AbstractFlushingEventListener.java:344 ) at app//org.hibernate.event.internal.DefaultFlushEventListener.onFlush( DefaultFlushEventListener.java:40 ) at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener( EventListenerGroupImpl.java:107 ) at app//org.hibernate.internal.SessionImpl.doFlush( SessionImpl.java:1407 ) at app//org.hibernate.internal.SessionImpl.managedFlush( SessionImpl.java:489 ) at app//org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion( SessionImpl.java:3303 ) at app//org.hibernate.internal.SessionImpl.beforeTransactionCompletion( SessionImpl.java:2438 ) at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion( JdbcCoordinatorImpl.java:449 ) at app//org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback( JdbcResourceLocalTransactionCoordinatorImpl.java:183 ) at app//org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300( JdbcResourceLocalTransactionCoordinatorImpl.java:40 ) at app//org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit( JdbcResourceLocalTransactionCoordinatorImpl.java:281 ) at app//org.hibernate.engine.transaction.internal.TransactionImpl.commit( TransactionImpl.java:101 ) at app//org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:562 ) ... 77 more Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "USERNAME" not found; SQL statement: insert into member (username, id) values (?, ?) [42122-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:477 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.table.Table.getColumn( Table.java:749 ) at org.h2.command.Parser.parseColumn( Parser.java:1256 ) at org.h2.command.Parser.parseColumnList( Parser.java:1241 ) at org.h2.command.Parser.parseInsert( Parser.java:1641 ) at org.h2.command.Parser.parsePrepared( Parser.java:814 ) at org.h2.command.Parser.parse( Parser.java:689 ) at org.h2.command.Parser.parse( Parser.java:661 ) at org.h2.command.Parser.prepareCommand( Parser.java:569 ) at org.h2.engine.SessionLocal.prepareLocal( SessionLocal.java:631 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:288 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at app//org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at app//org.h2.engine.SessionRemote.readException( SessionRemote.java:637 ) at app//org.h2.engine.SessionRemote.done( SessionRemote.java:606 ) at app//org.h2.command.CommandRemote.prepare( CommandRemote.java:78 ) at app//org.h2.command.CommandRemote.<init>( CommandRemote.java:50 ) at app//org.h2.engine.SessionRemote.prepareCommand( SessionRemote.java:480 ) at app//org.h2.jdbc.JdbcConnection.prepareCommand( JdbcConnection.java:1116 ) at app//org.h2.jdbc.JdbcPreparedStatement.<init>( JdbcPreparedStatement.java:92 ) at app//org.h2.jdbc.JdbcConnection.prepareStatement( JdbcConnection.java:288 ) at app//com.zaxxer.hikari.pool.ProxyConnection.prepareStatement( ProxyConnection.java:337 ) at app//com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement( HikariProxyConnection.java ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare( StatementPreparerImpl.java:90 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:176 ) ... 100 more package jpabook.jpashop; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.transaction.annotation.Transactional; @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() throws Exception{ //given Member member= new Member(); member.setUsername("memberA"); Long savedId = memberRepository.save(member); //when Member findMember = memberRepository.find(savedId); //then Assertions.assertEquals(findMember.getId(), member.getId()); Assertions.assertEquals(findMember.getUsername(), member.getUsername()); Assertions.assertEquals(findMember, member); System.out.println("findMember == member : " + (findMember == member)); } } package jpabook.jpashop; //Ropository: entity 찾아줌 import org.springframework.stereotype.Repository; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Repository public class MemberRepository { @PersistenceContext EntityManager em; public Long save(Member member){ em.persist(member); return member.getId(); } public Member find(Long id) { return em.find(Member.class, id); } } package jpabook.jpashop; import lombok.Getter; import lombok.Setter; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Getter @Setter @Entity public class Member { @Id @GeneratedValue private Long id; private String username; } spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true logging.level: org.hibernate.SQL: debug 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
spring-boot 웹앱 웹앱 JPA java jpa spring
heidi
2023-02-25T08:15:29.608Z
댓글 1
좋아요 0
조회수 855
미해결
호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
작성글 저장2 - 클래스 분리에서 PostCreate 테스트 시 기본생성자 없이 테스트 통과가 어떻게 되는지 궁금합니다. 커뮤니티에서 저처럼 이 부분에 대해 궁금증이 생겨 질문한 글을 보았습니다. 호돌맨님이 그 글에서 링크 건 동욱님 글도 보고 여러 가지 찾아봤는데요. 제 나름대로 결론을 지은 것을 말씀드리면 기본 생성자가 없을 때는 ObjectMapper가 인스턴스를 생성해 직렬화를 진행할 때 인자와 멤버 변수 간의 관계를 몰라서 그런게 아닐까 생각이 됩니다 그리고 호돌맨님의 답변 중 기본 생성자 없이 title, content에 내용을 넣으려면 어떻게 해야하는지에 대해서 고민해봐야 된다고 하셨는데요 저는 일단 아래와 같은 방법을 사용해서 테스트를 통과했습니다. @ToString @Getter public class PostCreate { @NotBlank(message = "제목은 필수입니다!") public String title; @NotBlank(message = "내용은 필수입니다!") public String content; @Builder @JsonCreator public PostCreate(@JsonProperty("title") String title, @JsonProperty("content") String content) { this.title = title; this.content = content; } } 혹시 제가 한 방법말고 기본생성자 없이 내용을 넣는 방법을 찾으셨는지? 궁금하고 어떻게 호돌맨님은 기본생성자 없이 테스트가 통과 됐는지.. 궁금합니다...
vue.js JPA aws jpa vuejs spring-security spring-boot Spring Security
치즈초코우유
2023-02-25T07:55:56.391Z
댓글 2
좋아요 1
조회수 684
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
첫번째 PostMapping 으로 했을때 값 등록은 잘되는데 406 에러가 나옵니다. 두번째 update 할때는 값도 변경안되고 404 에러가 납니다..
spring spring-boot jpa JPA java
114tla
2023-02-25T07:02:15.553Z
댓글 4
좋아요 0
조회수 1753
미해결
@Entity내에서 one to one, many to one 등등 과 같은것들도 쿼리가 발생하자나요 근대 이부분에 대해서 Cacheable을 적용할 방법은 없나요? 찾아도 없는거같아서 문의드려봅니다
호두
2023-02-25T05:41:13.398Z
댓글 1
좋아요 0
조회수 281
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요 영한님! 질문드립니다. 고아 객체는 부모 엔티티와 연관관계가 끊어진 자식 엔티티 라고 이해했습니다. 고아 객체가 생성되는 조건은 부모 엔티티 삭제 부모 엔티티가 삭제 되면 자식 엔티티를 고아객체로 판단 합니다. e.g) em.remove(parent); 부모 엔티티에 있는 자식 엔티티 컬렉션 제거 연관관계가 끊어진 자식 객체를 고아객체로 판단 합니다. e.g) parent.getChild().remove(0); 결과적으로 orphanRemoval = true 를 설정하면 자식 엔티티(고아 객체)는 부모 엔티티와 함께 삭제 되거나 자식 엔티티(고아 객체)만 삭제 된다. 맞게 이해하고 있는 것 일까요? 감사합니다.^^
개발하는쿼카
2023-02-24T10:09:30.982Z
댓글 1
좋아요 4
조회수 701
해결됨
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 공부하는 개발자 최태현님! 친절 + 자세한 강의 재미있게 잘 듣고 있습니다 ㅎㅎ 7강 초반을 듣는 중에 문득 궁금한 점이 생겼는데요, 아마 후반에 나올수도 있는 문의라 질문드리기 이른 감이 있지않나 싶지만.. 여튼 바로 질문 드려볼게요 가장 먼저 API를 설계해야 한다! : 클라이언트+서버 개발자분들이 모여 API에 대해 의논,설계,확정하곤 한다 라고 말씀해주셨는데, 현재 태현님 강의에서는 아무래도 클라이언트 부분이 만들어져있는 상태로, 서버에 집중하자는 취지로 진행중이다보니.. 실제 현업에서는 API를 위와 같이 먼저 확정 단계까지 마친 후, 클라이언트와 서버 개발자분들이 확정된 API 약속을 토대로 각자 업무를 진행하며 서로 체크해나가며 개발하는? 그런 흐름인지 궁금하네요 ! (비단 이 강의 뿐만 아니라, 다른 수업이나 인터넷 자료들도 대부분 짜여진 코드들을 가지고 공부를 하는 입장이다보니 실제로 토이프로젝트나 뭔가를 스스로 직접 만들어볼때 어디서부터 시작해야할지,, 조금은 막막한 심정도 있는 부분입니다) 제가 공부 시작한지 얼마 안된 초보이다보니,, 질문이나 용어 조차도 서툴러서 요점이 잘 전달 되었을지 모르겠네요 그럼, 멋지고 젠틀하신 태현님의 답변을 기다리며 7강과 뒷부분들 계속 진행하고 있을게요~ 긴 질문 글을 읽어주시고 답변 주셔서 미리 감사드립니다. 행복하세요!
JPA aws java spring jpa spring-boot mysql
jk s
2023-02-24T03:29:43.356Z
댓글 1
좋아요 2
조회수 780
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요 강사님 강의 문서 오타 제보 드립니다. P23 api/v1/orders 처럼 List<Order> orders = orderRepository.findAllByString(new OrderSearch()); 이 되어야 할 것 같습니다. 감사합니다.
java spring jpa spring-boot JPA
tnwls2316
2023-02-24T00:16:08.550Z
댓글 1
좋아요 0
조회수 376
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요, 아래 강의 시간대에 상품 주문 여러개 하기 위해서 상품을 추가, 삭제하고 하는 부분 UI 구성 코드(validation 부분까지도여)로 남겨주실수 있을까요? 강의 챕터: 상품주문 시간: 7분 58초
jpa 웹앱 spring spring-boot java
냠냠이
2023-02-23T15:23:59.196Z
댓글 1
좋아요 0
조회수 551