묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
Pawn AI이동 관련
안녕하세요 Rookiss강사님Pawn으로 AI이동하고 있는데 Cube로 하면 이동이 되는데제가 먼가 큐브말고 로봇청소기로 한번 이동하는걸 만들어 보고 싶어서sketchfab에서 fbx로 다운받은 것을 이용해static mesh를 만들고 mesh를 변경해서 로봇 청소기 모양으로 만들었는데 실행하면 이동하지 않습니다.그래서 로봇청소기 mesh는 삭제하고 큐브를 추가해주면 다시 이동이 됩니다.BP_AIController
-
미해결스프링 부트 - 핵심 원리와 활용
빌드에 실패하는데요..
기존에 인텔리제이에서 자바 11버전으로 설정했었습니다.그래서 자바 버전 설정 관련된 부분을 모두 17 버전으로 변경했는데도 빌드에 실패하네요..그래서 build.gradle 파일에서 아래 부분 주석 처리하니깐 빌드에 성공했습니다.왜 그런지 이유를 알 수 있을까요? //sourceCompatibility = '17'
-
미해결스프링 핵심 원리 - 고급편
@Bean vs @Component
빈등록하는 방법에@Bean을 통한 직접등록,@Component를 통해 자동 스캔@Import를 통한 등록 3가지를 말씀해주셨는데요, @Bean과 @Component는 왜 구분지어지는건가요?@Bean은 @Configuration 객체안에서만 사용할 수 있는 규칙이라던지 있는건가요?
-
미해결
Java 클래스 변수 개념 질문이요.
메서드나 함수 안에서 선언해서 사용하는 변수를 지역변수라 칭하는데,마찬가지로 메서드 안에 클래스 인스턴스를 생성해서 사용할 경우 해당 객체는뭐라고 부르나요?(메서드 안에서 클래스를 선언하는 지역클래스 말고요.)예로는void methodA () {int i = 0;ClassA m = new ClassA()m.a = i;}대충 이런 식의 코드일 때 변수 i를 methodA의 지역변수라 하고객체 m은 어떻게 불러야 할까요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Custom Error Page
안녕하세요. 좋은 강의를 감사히 듣고 있는 학생입니다.다름이 아니라 이번에 실무에 가까운 프로젝트를 하면서 Common Error Page (Custom Error Page) 가 필요하다는 얘기를 듣게 되었습니다. 어떤 에러가 발생하는 경우에 기본적인 에러 화면이 아닌 디자인 된 에러 페이지로 항상 가야한다는 요청 사항인데 이건 static 인가요 template 인가요? 어떻게 구현하나요?
-
해결됨실전 연습으로 익히는 고급 타입스크립트 기술
문제 링크를 열었는데 이미 풀어져있습니다
문제를 풀려고 보니까 답이 나와있어서요!'다수의 타입인자-2 문제 풀어보기' 강의입니다.
-
해결됨OpenStack을 활용한 클라우드 환경 구축하기
수업자료는 어디에서 다운받을 수 있을까요?
다운로드 링크가 있다는데요어딘지 잘 모르겠습니다.
-
해결됨OpenStack을 활용한 클라우드 환경 구축하기
수업중에 사용하신 img 이미지 제공 부탁드립니다
감사합니다
-
미해결OpenStack을 활용한 클라우드 환경 구축하기
수업에 사용하신 qcow2 img 이미지 제공해 주세요 ㅠㅠ
감사합니다
-
해결됨인프콘 2022 다시보기
시연영상에서 명령어가 자동으로 완성되는 기능이 무엇인가요?
회색 글씨로 미리 알려주던데유용해 보입니다!어떤 툴을 쓰신건지 알려주시면 도움이 많이 될것 같습니다.
-
미해결함수형 프로그래밍과 JavaScript ES6+
변수에 재 할당 금지~
함수형 프로그램밍 기법을 배우고자 이 강의를 듣고 있습니다. 제가 사용하는 프로그램은 언어적인 차원에서 프로그래밍 언어가 아니고 함수들 만으로 데이터를 처리합니다.최근 들어 이 함수에서 변수를 지원하는 LET, VAR를 사용하는데 실제 값을 재 할당하는 변수가 아니라 재 할당이 금지된 상수 차원에서 변수입니다.이 강의를 들으면서 느낀 건데 이렇게 변수를 재 할당 금지 시킨것이 순수 함수를 구현하기 위함일까요?익명 함수로 lambda를 사용하는데 변수에 재할당이 금지되어서 클로저를 제대로 사용 못하는것 같습니다.변수에 재 할당이 금지되면 클로저에서 함수를 호출할때 마다 1씩 증가 시키는 클로저를 사용하지 못하는 건가요?
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
4. 완전탐색에서 3. 멘토링 문제 문의
안녕하세요. 제가 문제를 정확하게 이해를 못한건지 이상한 부분이 있어서 문의 드려요. 답이 (3, 1), (3, 2), (4, 2)와 같은 결과를 만들 수 있다고 되어있는데, arr[2]번째 케이스에서는 해당이 되지 않는걸로 보여지는데 잘못 이해한 걸까요?arr[0]번째 케이스 => 3번 멘토 1등, 1번 멘티 3등 (조건 성립)arr[1]번째 케이스 => 3번 멘토 2등, 1번 멘티 4등 (조건 성립) arr[2]번째 케이스 => 3번 멘토 4등, 1번 멘티 3등 (조건 성립 X)let arr = [ [3, 4, 1, 2], [4, 3, 2, 1], [3, 1, 4, 2] ];
-
해결됨[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
팝업창 위치를 임의로 더 위로 올려도 괜찮나요?
계속되는 자잘한 질문에 죄송합니다 T.T이번 주 토요일에 시험을 앞두고 있어서 좀 더 확실하게 알고 넘어가고자 계속해서 질문하게 되는 것 같습니다..!팝업창 위치 관련해서 궁금한 점이 있습니다..modal { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgb(0, 0, 0, 0.2); z-index: 11; display: none; } .modal-con { position: absolute; top: 50%; left: 50%; background-color: #fff; width: 500px; transform: translate(-50%, -100%); padding: 20px; border-radius: 20px; }위치 관련 질문이어서 .modal과 .modal-con 부분만 가져오게 되었습니다. 위와 같이 작성할 경우에 해당 사진처럼 브라우저 중앙에 위치하기는 하는데 안 예쁘기도 하고 시험지(?)에 나와있는 모달 제작 그림에선 팝업창이 슬라이드까지 가리고 있어서 더 올려주고 싶은데.modal-con { position: absolute; top: 50%; left: 50%; background-color: #fff; width: 500px; transform: translate(-50%, -100%); padding: 20px; border-radius: 20px; } .modal-con h2 { text-align: center; background-color: #000; color: #fff; padding: 10px; border-radius: 10px; }이런 식으로 .modal-con의 translate 뒷부분에 -50%, -100% 를 주어서 임의로 더 올려도 괜찮은지가 궁금합니다..!시험을 앞뒀다보니 저는 제 눈의 만족을 위해 저렇게 연습해왔는데 실제 시험에서 저렇게 작업해도 될지, 무조건 브라우저 중앙에 위치시키는 것이 좋을 지 확실하게 알고 가는 것이 좋을 것 같아서 질문드리게 되었습니다. 항상 감사합니다!!
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Read 함수
강의를 보고나서 코드를 다시보며 이해를 해보고 있었습니다. ReadOnlySpan을 만들어준 후 count += (ushort)를 2번 해주는데 이 부분이 이해가 안되더라구요 왜 그런건가요 ?
-
미해결실전! 스프링 데이터 JPA
스프링 데이터 JPA delete 안되는 이유가 궁금합니다
안녕하세요! 스프링 데이터 JPA를 상속받은 리포지토리를 통해 crud 구현 연습을 하고 있었습니다. 게시판 유저와 유저가 작성한 글을 각각 User, Article 엔티티로 표현했습니다.User의 경우 모든 기능이 정상적으로 작동됩니다.그런데 Article은 삭제가 이루어지지 않는 현상이 발생하고 있습니다.그렇다고 중간에 예외가 발생하는 것도 아니고, 삭제시에는 삭제한 엔티티의 정보를 반환하게끔 설계했는데 멀쩡히 반환이 잘되고 DB에서도 삭제되지 않았습니다.package com.crud.controller.article; import com.crud.constant.MessageConst; import com.crud.dto.Result; import com.crud.entity.User; import com.crud.service.ArticleService; import com.crud.service.UserService; import com.crud.utils.ResultUtils; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.web.PageableDefault; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/articles") @RequiredArgsConstructor public class ArticleController { private final ArticleService articleService; private final UserService userService; private final MessageConst messageConst; @GetMapping public ResponseEntity<Result<Page<ArticleDTO>>> articles(@ModelAttribute ArticleSearchCond articleSearchCond, @PageableDefault Pageable pageable) { Page<ArticleDTO> page = articleService.findAll(articleSearchCond, pageable); return ResponseEntity.ok().body(ResultUtils.success(page, messageConst.successSearch())); } @GetMapping("/{id}") public ResponseEntity<Result<ArticleDTO>> article(@PathVariable Long id) { ArticleDTO foundArticle = new ArticleDTO(articleService.findById(id)); return ResponseEntity.ok().body(ResultUtils.success(foundArticle, messageConst.successSearch())); } @PostMapping("/save") public ResponseEntity<Result<ArticleDTO>> save(@RequestBody @Validated ArticleSaveDTO saveDTO) { User user = userService.findById(saveDTO.getUserId()); ArticleDTO articleDTO = articleService.save(saveDTO, user); return ResponseEntity.ok().body(ResultUtils.success(articleDTO, messageConst.successSave())); } @PatchMapping("/{id}") public ResponseEntity<Result<ArticleDTO>> update(@PathVariable Long id, @RequestBody ArticleUpdateDTO updateDTO) { ArticleDTO updatedArticle = articleService.update(id, updateDTO); return ResponseEntity.ok().body(ResultUtils.success(updatedArticle, messageConst.successUpdate())); } // 삭제 메서드 호출입니다!!!!!! @DeleteMapping("/{id}") public ResponseEntity<Result<ArticleDTO>> delete(@PathVariable Long id) { ArticleDTO deletedArticle = articleService.delete(id); return ResponseEntity.ok().body(ResultUtils.success(deletedArticle, messageConst.successDelete())); } } package com.crud.service; import com.crud.controller.article.ArticleDTO; import com.crud.controller.article.ArticleSaveDTO; import com.crud.controller.article.ArticleSearchCond; import com.crud.controller.article.ArticleUpdateDTO; import com.crud.entity.Article; import com.crud.entity.User; import com.crud.exception.NoSuchDataException; import com.crud.repository.article.ArticleRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Slf4j @Service @Transactional @RequiredArgsConstructor public class ArticleService { private final ArticleRepository articleRepository; @Transactional(readOnly = true) public Page<ArticleDTO> findAll(ArticleSearchCond articleSearchCond, Pageable pageable) { return articleRepository.findAll(articleSearchCond, pageable); } @Transactional(readOnly = true) public Article findById(Long id) { return articleRepository.findById(id).orElseThrow(NoSuchDataException::new); } public ArticleDTO save(ArticleSaveDTO saveDTO, User user) { Article article = Article.createArticle(saveDTO, user); Article savedArticle = articleRepository.save(article); return new ArticleDTO(savedArticle); } public ArticleDTO update(Long id, ArticleUpdateDTO updateDTO) { Article article = findById(id); article.update(updateDTO); return new ArticleDTO(article); } // 삭제 메서드입니다!!!!! public ArticleDTO delete(Long id) { // articleRepository.deleteById(id); Article article = findById(id); articleRepository.delete(article); return new ArticleDTO(article); } }컨트롤러가 userService, articleService를 둘다 주입받고 있어서 트랜잭션이 꼬였나하고 userService를 지워보았는데 여전히 삭제는 안되었습니다. 그런데 만약 articleService.delete()의 반환타입을 void로 하여 아무것도 반환안하고(컨트롤러가 반환하는 api의 내용물도 그냥 null로 설정했습니다) 주석처리한 deleteById(id)를 사용해서 id로 바로 지우면 DB에서의 삭제가 이루어졌습니다. 이유를 계속 생각해보고 이거저거 건드려보고있긴한데, 아직까지는 도저히 모르겠습니다.. 리포지토리는 동적검색메서드만 따로 추가되었지, 삭제 메서드는 스프링 데이터 JPA의 delete를 그대로 가져다 쓴것입니다. 혹시 추가적인 코드가 필요하다면 말씀해주세요!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
request.getSession 과 sessionStore
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 이해한 바로는request.getSesison 을 통해 얻는 HttpSession 은SessionManager 와 비교하면 createSession 동작이 아니라 sessionStore 와 같은 개념의 저장소를 호출하는 것 같고,HttpSession 의 setAttribute 동작이 createSession 의 sessionStore.put 과 같은것이며request.getSesison 를 통해 null 이 아닌 session 이 처음 만들어질 때, response 에 어떤 클라이언트의 sessionStore(HttpSession) 인지 구분하는 id 가 쿠키로 담기는 것 같은데이렇게 이해하는게 맞을까요?
-
미해결스프링 핵심 원리 - 기본편
생성자 주입방식에 의문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]안녕하세요? 생성자 주입에 대해서 질문이 있습니다. 앞서서 영한님의 강의에서, bean을 통해서 역할과 책임을 구분한다는 이야기를 많이 해주셨습니다.app config에서 배우를 정하고, 각 클래스들은 그냥 자신의 역할에만 집중한다는 비유를 들어서 말씀해주셨는데요생성자를 직접 주입하는 방식은 사실 기존의 말씀과 상반되는 내용같아서, 제가 제대로 이해한 게 맞는지 싶어서 질문드립니다. 비유를 사용하여 그대로 말씀을 드리자면, '불변, 필수'의 관계에서는 앞서 말씀과 다르긴하지만, 생성자 주입을 통해 그냥 하나의 클래스에서 배우도 정하고 역할도 스스로 하는 게 맞을까요?추가로, 만약 생성자를 주입해주는 방식만 사용한다고 하면, (싱글톤이라는 기능을 제외할 때)사실 빈을 왜 사용하는지?도 의문이 자연스럽게 듭니다..!
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
build 관련 문의드립니다
안녕하세요, S1부터 수강한 학생인데요,S1 환경셋업 영상을 보며 세팅하고, S1에서 환경 테스트하는 것 (make, 빌드) 이상없이 완료했습니다다만 fpga 21장에서 build하는 중 위와같은 오류가 나는데요, 혹시 원인이 짐작가신다면 조언 좀 부탁드립니다. 두 사진은 같은 오류를 나타내고, 각각 기본모드와 sudo모드에서 돌려본 결과입니다감사합니다.
-
미해결실전! 스프링 데이터 JPA
h2 데이터베이스에서 Team table not found 에러 문의
스프링 데이터 JPA의 초기 테스트 파일 실행 시 아래와 같은 에러가 뜹니다.MemberJpaRepositoryTest 에러2023-08-24 01:03:55.071 INFO 5528 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2023-08-24 01:03:55.325 WARN 5528 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2023-08-24 01:03:56.092 INFO 5528 --- [ main] c.y.d.r.MemberJpaRepositoryTest : Started MemberJpaRepositoryTest in 4.755 seconds (JVM running for 6.003) 2023-08-24 01:03:56.216 INFO 5528 --- [ main] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@ec2cc4 testClass = MemberJpaRepositoryTest, testInstance = com.yy.datajpa.repository.MemberJpaRepositoryTest@68303c3e, testMethod = testMember@MemberJpaRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@2a5b3fee testClass = MemberJpaRepositoryTest, locations = '{}', classes = '{class com.yy.datajpa.DataJpaApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@28194a50, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@4149c063, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@62656be4, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@222a59e6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@70e38ce1, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@77167fb7], 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@8dcacf1]; rollback [false] 2023-08-24 01:03:56.372 DEBUG 5528 --- [ main] org.hibernate.SQL : insert into member (member_id, age, team_id, username) values (default, ?, ?, ?) 2023-08-24 01:03:56.378 WARN 5528 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 42104, SQLState: 42S04 2023-08-24 01:03:56.378 ERROR 5528 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : Table "MEMBER" not found (this database is empty); SQL statement: insert into member (member_id, age, team_id, username) values (default, ?, ?, ?) [42104-214] 2023-08-24 01:03:56.395 INFO 5528 --- [ main] p6spy : #1692806636395 | took 1ms | rollback | connection 2| url jdbc:h2:tcp://localhost/~/jpadata ; 2023-08-24 01:03:56.404 WARN 5528 --- [ main] o.s.test.context.TestContextManager : Caught exception while invoking 'afterTestMethod' callback on TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener@40dff0b7] for test method [public void com.yy.datajpa.repository.MemberJpaRepositoryTest.testMember()] and test instance [com.yy.datajpa.repository.MemberJpaRepositoryTest@68303c3e] org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:752) ~[spring-tx-5.3.29.jar:5.3.29] at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) ~[spring-tx-5.3.29.jar:5.3.29] at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:131) ~[spring-test-5.3.29.jar:5.3.29] at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:255) ~[spring-test-5.3.29.jar:5.3.29] at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:445) ~[spring-test-5.3.29.jar:5.3.29] at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:206) ~[spring-test-5.3.29.jar:5.3.29] 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) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57) ~[junit5-rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) ~[junit-rt.jar:na] at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) ~[idea_rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) ~[junit-rt.jar:na] org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [insert into member (member_id, age, team_id, username) values (default, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:259) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) at com.yy.datajpa.repository.MemberJpaRepository$$EnhancerBySpringCGLIB$$53401686.save(<generated>) at com.yy.datajpa.repository.MemberJpaRepositoryTest.testMember(MemberJpaRepositoryTest.java:25) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) 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 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) Suppressed: org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:752) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:131) at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:255) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:445) at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:206) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAfterEachCallbacks$12(TestMethodTestDescriptor.java:257) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$13(TestMethodTestDescriptor.java:273) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$14(TestMethodTestDescriptor.java:273) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAllAfterMethodsOrCallbacks(TestMethodTestDescriptor.java:272) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAfterEachCallbacks(TestMethodTestDescriptor.java:256) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:141) ... 47 more Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:37) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:186) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement(StatementPreparerImpl.java:111) at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.prepare(GetGeneratedKeysDelegate.java:52) at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:40) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3279) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3914) at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:84) at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:645) at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:282) at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:263) at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:317) at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:329) at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:286) at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:192) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:122) at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:185) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:128) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:55) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:756) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:742) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:315) at com.sun.proxy.$Proxy108.persist(Unknown Source) at com.yy.datajpa.repository.MemberJpaRepository.save(MemberJpaRepository.java:18) at com.yy.datajpa.repository.MemberJpaRepository$$FastClassBySpringCGLIB$$5644ac45.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ... 74 more Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" not found (this database is empty); SQL statement: insert into member (member_id, age, team_id, username) values (default, ?, ?, ?) [42104-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.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8385) at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8369) at org.h2.command.Parser.readTableOrView(Parser.java:8358) at org.h2.command.Parser.readTableOrView(Parser.java:8328) at org.h2.command.Parser.parseInsert(Parser.java:1632) 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 org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.engine.SessionRemote.readException(SessionRemote.java:637) at org.h2.engine.SessionRemote.done(SessionRemote.java:606) at org.h2.command.CommandRemote.prepare(CommandRemote.java:78) at org.h2.command.CommandRemote.<init>(CommandRemote.java:50) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:480) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116) at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:92) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:1044) at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:344) at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java) at com.p6spy.engine.wrapper.ConnectionWrapper.prepareStatement(ConnectionWrapper.java:133) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$2.doPrepare(StatementPreparerImpl.java:109) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:176) ... 107 more 2023-08-24 01:03:56.425 INFO 5528 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2023-08-24 01:03:56.428 INFO 5528 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2023-08-24 01:03:56.441 INFO 5528 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. Process finished with exit code -1 application.yml 파일spring: datasource: url: jdbc:h2:tcp://localhost/~/jpadata username: sa driver-class-name: org.h2.Driver jpa: defer-datasource-initialization: true hibernate: ddl-auto: create #애플리케이션 실행 시점에 테이블을 drop하고 다시 생성 properties: hibernate: # show_sql: true #System.out에 하이버네이트 실행 sql을 남김 format_sql: true logging: level: org.hibernate.SQL: debug #logger를 통해 하이버네이트 실행 SQL을 남김 # org.hibernate.type: trace entity - Member 코드package com.yy.datajpa.entity; import lombok.*; import javax.persistence.*; @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "username", "age"}) public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_id") private Long id; private String username; private int age; public Member(String username) { this.username = username; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="team_id") private Team team; public Member(String username, int age){ this(username, age, null); } public Member(String username, int age, Team team){ this.username = username; this.age = age; if(team!= null){ changeTeam(team); } } public void changeTeam(Team team){ this.team = team; team.getMembers().add(this); } //jpa 표준 스펙에 entity에 기본적으로 기본생성자가 있어야 한다고 돼있음 //private으로 기본생성자 만들면 안됨. protected까지는 열어야함 //proxy 기술 같은 걸 쓸 때, 객체를 가져다 쓰므로 private으로 막아놓으면 이 때 막힐 수 있음. 그래서 최소 protected는 해둘 것. //annotation 으로 대체했음 // protected Member() { // // } } entity - Team 코드package com.yy.datajpa.entity; import lombok.*; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "name"}) public class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "team_id") private Long id; private String name; public Team(String name) { this.name = name; } @OneToMany(mappedBy = "team") List<Member> members = new ArrayList<>(); } h2 데이터베이스 연결이 안되는 것 같은데 원인을 모르겠습니다 ㅠㅠh2 연결 전 화면도 아래에 첨부합니다. C:\Users\{사용자계정} 위치에는 아래와 같은 파일이 생성되어 h2 연결은 정상적으로 되는 상태입니다. 아무리 찾아봐도 원인을 찾지 못해 추가 실습을 이어나가지 못하고 있습니다.어떻게 하면 이 에러를 해결할 수 있나요 ㅠㅠ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
섹션 29 10-1 Entity 구현 선행 강좌
섹션 28에서는 스타벅스를 가지고 ERD 까지 그렸는데, 섹션 29에서 새로운 ERD를 가지고 Entity 구현하는 것 같네요. 강의가 업데이트가 안된걸까요?