inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

MemberServiceTest오류

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 밑은 오류 내용이고 h2 데이터베이스를 켰고 실행했는데 jpashopapplication도 동작하지 않고 memberServiceTest도 에러가 떠서 질문드립니다. application.yml test로 진행해서 끝이 test입니다 db도 test로 되어있습니다. memberServiceTest 코드 package jpabook.jpashop.service; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import org.junit.Test; import org.junit.jupiter.api.Assertions; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Autowired EntityManager em; @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("kim"); //When Long saveId = memberService.join(member); //Then Assertions.assertEquals(member, memberRepository.findOne(saveId)); } @Test public void 중복_회원_예외() throws Exception { //Given //When //Then } } Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2023-02-23 01:53:42.517 ERROR 14648 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest( SpringJUnit4ClassRunner.java:227 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall( SpringJUnit4ClassRunner.java:289 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock( SpringJUnit4ClassRunner.java:291 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:246 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) ~[junit-4.13.1.jar:4.13.1] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) ~[junit-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:235 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) ~[junit-rt.jar:na] Caused by: org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.hibernate.cfg.InheritanceState.determineDefaultAccessType( InheritanceState.java:266 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.cfg.InheritanceState.getElementsToProcess( InheritanceState.java:211 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.cfg.AnnotationBinder.bindClass( AnnotationBinder.java:772 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies( AnnotationMetadataSourceProcessorImpl.java:225 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies( MetadataBuildingProcess.java:239 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:282 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ~[spring-beans-5.3.25.jar:5.3.25] ... 42 common frames omitted 2023-02-23 01:53:42.522 ERROR 14648 --- [ main] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@6304101a] to prepare test instance [jpabook.jpashop.service.MemberServiceTest@cdbe995] java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:98 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest( SpringJUnit4ClassRunner.java:227 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall( SpringJUnit4ClassRunner.java:289 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock( SpringJUnit4ClassRunner.java:291 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:246 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) ~[junit-4.13.1.jar:4.13.1] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) ~[junit-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:235 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) ~[junit-rt.jar:na] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ~[spring-test-5.3.25.jar:5.3.25] ... 27 common frames omitted Caused by: org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.hibernate.cfg.InheritanceState.determineDefaultAccessType( InheritanceState.java:266 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.cfg.InheritanceState.getElementsToProcess( InheritanceState.java:211 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.cfg.AnnotationBinder.bindClass( AnnotationBinder.java:772 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies( AnnotationMetadataSourceProcessorImpl.java:225 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies( MetadataBuildingProcess.java:239 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:282 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ~[spring-beans-5.3.25.jar:5.3.25] ... 42 common frames omitted java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:98 ) at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest( SpringJUnit4ClassRunner.java:227 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall( SpringJUnit4ClassRunner.java:289 ) at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock( SpringJUnit4ClassRunner.java:291 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:246 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:235 ) at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ... 27 more Caused by: org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.hibernate.cfg.InheritanceState.determineDefaultAccessType( InheritanceState.java:266 ) at org.hibernate.cfg.InheritanceState.getElementsToProcess( InheritanceState.java:211 ) at org.hibernate.cfg.AnnotationBinder.bindClass( AnnotationBinder.java:772 ) at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies( AnnotationMetadataSourceProcessorImpl.java:225 ) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies( MetadataBuildingProcess.java:239 ) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:282 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ... 42 more . ____ _ /\\ / ___'_ __ ( _)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.8) 2023-02-23 01:53:42.638 INFO 14648 --- [ main] j.jpashop.service.MemberServiceTest : Starting MemberServiceTest using Java 11.0.15 on DESKTOP-FEGQJR8 with PID 14648 (started by 안찬웅 in C:\jpashop) 2023-02-23 01:53:42.638 INFO 14648 --- [ main] j.jpashop.service.MemberServiceTest : No active profile set, falling back to 1 default profile: "default" 2023-02-23 01:53:43.193 INFO 14648 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2023-02-23 01:53:43.204 INFO 14648 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 10 ms. Found 0 JPA repository interfaces. 2023-02-23 01:53:43.682 INFO 14648 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-02-23 01:53:43.711 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -> org.hibernate.type.BooleanType@3b435211 2023-02-23 01:53:43.712 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration boolean -> org.hibernate.type.BooleanType@3b435211 2023-02-23 01:53:43.713 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@3b435211 2023-02-23 01:53:43.713 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@6b162ecc 2023-02-23 01:53:43.713 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration true_false -> org.hibernate.type.TrueFalseType@69ed5ea2 2023-02-23 01:53:43.714 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration yes_no -> org.hibernate.type.YesNoType@551be9f6 2023-02-23 01:53:43.714 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -> org.hibernate.type.ByteType@3c28e5b6 2023-02-23 01:53:43.715 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration byte -> org.hibernate.type.ByteType@3c28e5b6 2023-02-23 01:53:43.716 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@3c28e5b6 2023-02-23 01:53:43.719 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration character -> org.hibernate.type.CharacterType@2dff7085 2023-02-23 01:53:43.720 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration char -> org.hibernate.type.CharacterType@2dff7085 2023-02-23 01:53:43.722 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@2dff7085 2023-02-23 01:53:43.722 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration short -> org.hibernate.type.ShortType@5db3d57c 2023-02-23 01:53:43.723 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration short -> org.hibernate.type.ShortType@5db3d57c 2023-02-23 01:53:43.724 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Short -> org.hibernate.type.ShortType@5db3d57c 2023-02-23 01:53:43.725 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration integer -> org.hibernate.type.IntegerType@65eb3597 2023-02-23 01:53:43.725 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration int -> org.hibernate.type.IntegerType@65eb3597 2023-02-23 01:53:43.726 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@65eb3597 2023-02-23 01:53:43.730 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration long -> org.hibernate.type.LongType@5a14e60d 2023-02-23 01:53:43.731 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration long -> org.hibernate.type.LongType@5a14e60d 2023-02-23 01:53:43.733 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Long -> org.hibernate.type.LongType@5a14e60d 2023-02-23 01:53:43.734 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration float -> org.hibernate.type.FloatType@22d477c2 2023-02-23 01:53:43.735 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration float -> org.hibernate.type.FloatType@22d477c2 2023-02-23 01:53:43.736 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Float -> org.hibernate.type.FloatType@22d477c2 2023-02-23 01:53:43.739 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration double -> org.hibernate.type.DoubleType@6df4af5 2023-02-23 01:53:43.739 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration double -> org.hibernate.type.DoubleType@6df4af5 2023-02-23 01:53:43.740 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@6df4af5 2023-02-23 01:53:43.740 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@17c0274c 2023-02-23 01:53:43.740 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@17c0274c 2023-02-23 01:53:43.741 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration big_integer -> org.hibernate.type.BigIntegerType@7e5efcab 2023-02-23 01:53:43.741 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@7e5efcab 2023-02-23 01:53:43.742 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration string -> org.hibernate.type.StringType@1efac5b9 2023-02-23 01:53:43.743 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.String -> org.hibernate.type.StringType@1efac5b9 2023-02-23 01:53:43.743 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration nstring -> org.hibernate.type.StringNVarcharType@8c0a23f 2023-02-23 01:53:43.743 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@10f405ff 2023-02-23 01:53:43.744 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration url -> org.hibernate.type.UrlType@291a4791 2023-02-23 01:53:43.744 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.net .URL -> org.hibernate.type.UrlType@291a4791 2023-02-23 01:53:43.744 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration Duration -> org.hibernate.type.DurationType@bb3ecfe 2023-02-23 01:53:43.744 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Duration -> org.hibernate.type.DurationType@bb3ecfe 2023-02-23 01:53:43.744 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration Instant -> org.hibernate.type.InstantType@582e9152 2023-02-23 01:53:43.744 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.Instant -> org.hibernate.type.InstantType@582e9152 2023-02-23 01:53:43.744 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@60b5e80d 2023-02-23 01:53:43.745 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@60b5e80d 2023-02-23 01:53:43.745 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalDate -> org.hibernate.type.LocalDateType@78e68401 2023-02-23 01:53:43.745 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@78e68401 2023-02-23 01:53:43.745 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@3312f4f4 2023-02-23 01:53:43.745 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@3312f4f4 2023-02-23 01:53:43.746 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@5c4cc644 2023-02-23 01:53:43.747 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@5c4cc644 2023-02-23 01:53:43.752 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@706f6d26 2023-02-23 01:53:43.754 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@706f6d26 2023-02-23 01:53:43.755 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@4aed311e 2023-02-23 01:53:43.755 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@4aed311e 2023-02-23 01:53:43.756 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration date -> org.hibernate.type.DateType@1e3f86d5 2023-02-23 01:53:43.756 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Date -> org.hibernate.type.DateType@1e3f86d5 2023-02-23 01:53:43.756 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration time -> org.hibernate.type.TimeType@5287ba5f 2023-02-23 01:53:43.757 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Time -> org.hibernate.type.TimeType@5287ba5f 2023-02-23 01:53:43.757 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration timestamp -> org.hibernate.type.TimestampType@4be490da 2023-02-23 01:53:43.758 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@4be490da 2023-02-23 01:53:43.758 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Date -> org.hibernate.type.TimestampType@4be490da 2023-02-23 01:53:43.759 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@7a65c995 2023-02-23 01:53:43.759 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar -> org.hibernate.type.CalendarType@6424e613 2023-02-23 01:53:43.759 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@6424e613 2023-02-23 01:53:43.759 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@6424e613 2023-02-23 01:53:43.759 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@24a0c58b 2023-02-23 01:53:43.759 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration calendar_time -> org.hibernate.type.CalendarTimeType@4a62062a 2023-02-23 01:53:43.759 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration locale -> org.hibernate.type.LocaleType@2c9d90fc 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@2c9d90fc 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration currency -> org.hibernate.type.CurrencyType@2bab618 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@2bab618 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration timezone -> org.hibernate.type.TimeZoneType@6c9b44bf 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@6c9b44bf 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration class -> org.hibernate.type.ClassType@1e40fbb3 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Class -> org.hibernate.type.ClassType@1e40fbb3 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@39023dbf 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@39023dbf 2023-02-23 01:53:43.760 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@1ee5632d 2023-02-23 01:53:43.761 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration binary -> org.hibernate.type.BinaryType@634f58d2 2023-02-23 01:53:43.761 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration byte[] -> org.hibernate.type.BinaryType@634f58d2 2023-02-23 01:53:43.761 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration [B -> org.hibernate.type.BinaryType@634f58d2 2023-02-23 01:53:43.761 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@281b2dfd 2023-02-23 01:53:43.762 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@281b2dfd 2023-02-23 01:53:43.762 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@281b2dfd 2023-02-23 01:53:43.762 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration row_version -> org.hibernate.type.RowVersionType@2db86a7c 2023-02-23 01:53:43.762 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration image -> org.hibernate.type.ImageType@391d1e33 2023-02-23 01:53:43.762 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration characters -> org.hibernate.type.CharArrayType@3fde2209 2023-02-23 01:53:43.762 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration char[] -> org.hibernate.type.CharArrayType@3fde2209 2023-02-23 01:53:43.762 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration [C -> org.hibernate.type.CharArrayType@3fde2209 2023-02-23 01:53:43.764 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@1e226bcd 2023-02-23 01:53:43.765 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@1e226bcd 2023-02-23 01:53:43.765 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@1e226bcd 2023-02-23 01:53:43.766 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration text -> org.hibernate.type.TextType@38732364 2023-02-23 01:53:43.766 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration ntext -> org.hibernate.type.NTextType@4ef18604 2023-02-23 01:53:43.766 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration blob -> org.hibernate.type.BlobType@4f1afe8f 2023-02-23 01:53:43.767 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@4f1afe8f 2023-02-23 01:53:43.769 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@752b69e3 2023-02-23 01:53:43.770 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration clob -> org.hibernate.type.ClobType@65da01f4 2023-02-23 01:53:43.770 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@65da01f4 2023-02-23 01:53:43.770 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration nclob -> org.hibernate.type.NClobType@637c840d 2023-02-23 01:53:43.771 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@637c840d 2023-02-23 01:53:43.771 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@7ccd611e 2023-02-23 01:53:43.771 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@640d604 2023-02-23 01:53:43.771 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration serializable -> org.hibernate.type.SerializableType@256bb5be 2023-02-23 01:53:43.772 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration object -> org.hibernate.type.ObjectType@11f23038 2023-02-23 01:53:43.773 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@11f23038 2023-02-23 01:53:43.774 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@722b2728 2023-02-23 01:53:43.776 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@740c4868 2023-02-23 01:53:43.777 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@5f3f3d00 2023-02-23 01:53:43.777 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@1a6dc5ea 2023-02-23 01:53:43.781 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@31d4b3e8 2023-02-23 01:53:43.783 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@278de2b2 2023-02-23 01:53:43.786 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@1fc1c7e 2023-02-23 01:53:43.787 DEBUG 14648 --- [ main] org.hibernate.type.BasicTypeRegistry : Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@75cacb3e 2023-02-23 01:53:43.808 INFO 14648 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Starting... 2023-02-23 01:53:43.824 INFO 14648 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Start completed. 2023-02-23 01:53:43.825 INFO 14648 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2023-02-23 01:53:43.847 DEBUG 14648 --- [ main] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@213835b6] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@24a3d414] 2023-02-23 01:53:43.856 ERROR 14648 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: No identifier specified for entity: jpabook.jpashop.domain.Member 2023-02-23 01:53:43.856 WARN 14648 --- [ main] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member 2023-02-23 01:53:43.856 INFO 14648 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Shutdown initiated... 2023-02-23 01:53:43.860 INFO 14648 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Shutdown completed. 2023-02-23 01:53:43.867 INFO 14648 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2023-02-23 01:53:43.873 ERROR 14648 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest( SpringJUnit4ClassRunner.java:227 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall( SpringJUnit4ClassRunner.java:289 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock( SpringJUnit4ClassRunner.java:291 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:246 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) ~[junit-4.13.1.jar:4.13.1] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) ~[junit-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:235 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) ~[junit-rt.jar:na] Caused by: org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.hibernate.cfg.InheritanceState.determineDefaultAccessType( InheritanceState.java:266 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.cfg.InheritanceState.getElementsToProcess( InheritanceState.java:211 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.cfg.AnnotationBinder.bindClass( AnnotationBinder.java:772 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies( AnnotationMetadataSourceProcessorImpl.java:225 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies( MetadataBuildingProcess.java:239 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:282 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) ~[spring-orm-5.3.25.jar:5.3.25] java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:98 ) at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest( SpringJUnit4ClassRunner.java:227 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall( SpringJUnit4ClassRunner.java:289 ) at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock( SpringJUnit4ClassRunner.java:291 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:246 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:235 ) at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ... 27 more Caused by: org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.hibernate.cfg.InheritanceState.determineDefaultAccessType( InheritanceState.java:266 ) at org.hibernate.cfg.InheritanceState.getElementsToProcess( InheritanceState.java:211 ) at org.hibernate.cfg.AnnotationBinder.bindClass( AnnotationBinder.java:772 ) at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies( AnnotationMetadataSourceProcessorImpl.java:225 ) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies( MetadataBuildingProcess.java:239 ) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:282 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ... 42 more at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ~[spring-beans-5.3.25.jar:5.3.25] ... 42 common frames omitted 2023-02-23 01:53:43.875 ERROR 14648 --- [ main] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@6304101a] to prepare test instance [jpabook.jpashop.service.MemberServiceTest@296676c4] java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:98 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest( SpringJUnit4ClassRunner.java:227 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall( SpringJUnit4ClassRunner.java:289 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock( SpringJUnit4ClassRunner.java:291 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:246 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) ~[spring-test-5.3.25.jar:5.3.25] at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) ~[junit-4.13.1.jar:4.13.1] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) ~[junit-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:235 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) ~[junit-rt.jar:na] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) ~[spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ~[spring-test-5.3.25.jar:5.3.25] ... 27 common frames omitted Caused by: org.hibernate.AnnotationException: No identifier specified for entity: jpabook.jpashop.domain.Member at org.hibernate.cfg.InheritanceState.determineDefaultAccessType( InheritanceState.java:266 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.cfg.InheritanceState.getElementsToProcess( InheritanceState.java:211 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.cfg.AnnotationBinder.bindClass( AnnotationBinder.java:772 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies( AnnotationMetadataSourceProcessorImpl.java:225 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies( MetadataBuildingProcess.java:239 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:282 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) ~[ hibernate-core-5.6.14.Final .jar: 5.6.14.Final ] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) ~[spring-orm-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ~[spring-beans-5.3.25.jar:5.3.25] ... 42 common frames omitted Process finished with exit code -1

  • 웹앱
  • JPA
  • 웹앱
  • spring-boot
  • jpa
  • spring
  • java
21cu_ 댓글 3 좋아요 1 조회수 1264

QueryDsl BooleanExpression에 대한 질문

미해결

실전! Querydsl

[질문 내용] 안녕하세요, QueryDsl 동적 쿼리 생성 코드 관련 선생님의 의견이 궁금합니다. BooleanExpression을 활용하여 동적 쿼리들의 조건을 생성하다보면 Entity, Column, 조건, 상황 별로 다양하고 많은 케이스들이 생겨 그만큼 코드 수를 많이 차지해 관리가 어려울 것이라 생각이 듭니다. 그래서 reflection을 사용하여 아래와 같이 처리를 하면 어떨까 싶습니다. public class BooleanExpressionGenerator<T extends EntityPathBase> { private final T qEntity; public BooleanExpressionGenerator(T qEntity) { this.qEntity = qEntity; } public static <T extends EntityPathBase> BooleanExpressionGenerator<T> of(T QEntity) { return new BooleanExpressionGenerator(QEntity); } public <F extends ComparableExpressionBase> BooleanExpression createExpression(F filed, MethodName methodName, Object arg) throws Exception { Method method = filed.getClass().getMethod(methodName.name, arg.getClass()); return (BooleanExpression) method.invoke(qEntity, arg); } @Getter @RequiredArgsConstructor public enum MethodName { EQ("eq"), NE("ne"), GT("gt"), GTE("goe"), LT("lt"), LTE("loe"); private final String name; } } BooleanExpressionGenerator.of(book).createExpression(name, ComparableExpression.EQ, "자바 ORM 표준 JPA 프로그래밍"); 사실 질문 작성을 위해 작성하는데 5분정도 걸린 급조 된 코드인 점 먼저 말씀드립니다...!(실제 동작도 하지 않는 더티 코드) 단지 이런 접근법에 대해서 선생님은 어떻게 생각하시는지가 궁금합니다. 추가로 현재 선생님이 근무하시는 곳에서도 동적 쿼리 관련해서 BooleanExpression을 상당히 많이 활용할 것으로 보여지는데 어떤 식으로 관리하고 처리하는지도 궁금합니다! 두서 없이 적은 점 양해부탁드립니다..! 감사합니다.

  • java
  • jpa
  • JPA
kwsic 댓글 1 좋아요 0 조회수 1131

aws 비용문제

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 태현강사님! 강의 들으면서 주니어 서버 개발자로서 큰 흐름이 잘 잡히지 않았는데 순서대로 따라해보니 흐름을 이해하는데 많은 도움이 되고 있습니다 좋은 강의 감사해요!! 제가 현재 41강까지 강의를 수강하였는데 aws로 인스턴스 시작하기 전에 혹시 aws 가 비용폭탄 이야기도 좀 있어서 걱정이 되서요ㅠㅠ 1년 지나기 전에 계정삭제를 해야한다던가 그런 추가적으로 제가 해줘야 하는 부분은 다음 강의들에 설명 되어져 있을까요?!

  • spring
  • mysql
  • java
  • spring-boot
  • jpa
  • JPA
  • aws
만석 댓글 1 좋아요 3 조회수 529

batch_size entity 1개일 때 이상현상

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

좋은 강의 항상 잘 보고 있습니다! 다름이 아니라 batchSize 적용 시, 상위 엔티티가 1개만 조회된 경우 in 쿼리가 이상하게 발생하는 현상에 대한 원인을 찾지 못하여 도움을 구하고자 질문드립니다. 아래 사진과 같이 OneToMany관계를 잡았을 때, batchsize를 적용한 뒤 4번 사진처럼 코드를 작성하고 실행하면 5번처럼 in query가 발생합니다. 그런데 6번 사진처럼 2개 이상의 entity가 영속성 컨텍스트에 존재하는 경우에는 정상적으로 작동하는데 혹시 무엇이 문제일까요..? 자문자답 죄송합니다! 해결되어서 지울까 하였지만, 혹시 저같은 분들이 있을 까 해서 남기겠습니다! https://ttl-blog.tistory.com/1202

  • java
  • spring
  • spring-boot
  • jpa
  • JPA
  • spring-boot
신동훈 댓글 1 좋아요 0 조회수 652

Exception에 대해서 질문드립니다.

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

실무를 하다 보면 다양한 Exception이 많이 나오게될텐데 그럴때마다 Exception파일을 만들어서 상속 받은 뒤 처리를 하시나요?? 그러면 엄청나게 많은 Exception파일들이 생길 것 같아서요!! 아니면 공통적인 Exception들만 ExceptionHandler로 잡아서 에러처리하고 공통적이지 않은 Exception들은 어떤식으로 처리하는지 궁금합니다. 저희 회사같은 경우는 Enum클래스에 여러가지 상황에맞는 상태코드와 문구를 설정해두고, 해당 상황이 나오면 상태코드와 문구를 Json데이터에 세팅하여 내려주더라구요. 반면에 ExceptionHandler는 사용하지 않고 있어요. 호돌맨님은 어떤식으로 처리하는지 궁금하여 질문드립니다.

  • vue.js
  • spring-boot
  • aws
  • jpa
  • JPA
  • Spring Security
  • spring-security
  • vuejs
김은재 댓글 1 좋아요 3 조회수 705

totalCount 마지막 질의입니다 ㅠㅠ

해결됨

스프링 프레임워크는 내 손에 [스프2탄]

여기서의 totalCount가 해당 사진의 boardService.totalCount()를 시작으로 여기서 최종적으로 쿼리로 select되어 값이 나오는걸로 이해를 했습니다. 즉, boardController에서 boardService.totalCount()를 시작해서 나오는 값이 해당 사진의 totalCount라는 select쿼리문에서 나온 결과값이 저장되는것이고 이 결과값이 pageMaker.setTotalCount() <-- 여기에 그대로 들어가서 pageMaker의 TotalCount에 저장되는걸로 이해를 했습니다. 흐름이 헷갈려 코드를 순서대로 타면서 확인해보니 이런 프로세스로 보이는데 제가 이해한게 맞는지 약간 혼동이 와서 최종적으로 질의를 드립니다... 여러번 질문을 올리는데 늘 답변을 달아주셔서 감사합니다 ㅠㅠ.......

  • Spring Security
  • mvc
  • spring
  • jpa
  • JPA
  • MVC
  • spring-security
  • jquery
ten 댓글 1 좋아요 0 조회수 320

프로그램 시작 문제

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

오류가 뜨는데 원인을 모르겠어요. 도움 요청합니다... 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.

  • spring
  • 웹앱
  • 웹앱
  • spring-boot
  • JPA
  • jpa
  • java
heidi 댓글 2 좋아요 0 조회수 821

스프링과 스프링부트 질문합니다

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

기존에 인터넷을 보면 스프링과 스프링부트를 분리하여서 스프링 하기전에 스프링 부트를하라고 이야기도 하고, 기업에서 스프링은 어떤데 스프링부트는 이러하다 다른 기술스택이라는식의 영상과 글들을 접해왔는데요 스프링 강의인데 스프링 부트로 진행하시고 다른 강사님들도 그렇게 하시더라고요 여기서 궁금한게 스프링과 스프링부트는 구별하지 않아도 되는걸까요?(그냥 스프링과 스프링부트를 혼용해서 써도 되는건지) 스프링부트가 아닌 스프링은 어떻게 공부해야할까요? 기업에서는 스프링부트가 아닌 스프링을 더 선호하나요?

  • java
  • JPA
  • spring-boot
  • mysql
  • spring
  • jpa
  • aws
김준식 댓글 1 좋아요 3 조회수 1539

DB설계

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

DB설계시, 되도록이면 join을 사용하지 않는 것이 더 나은지 궁금합니다 attenshop - 관심 쇼핑몰 buyer - 사용자 shoppingmale - 쇼핑몰 이렇게 1.attenshop에 buyer와 shoppingmal둘다 join을 거는 것 2.attshop과 buyer table에만 join을 걸고, attenshoptable에 shoppingmal 기본키 컬럼을 추가하는 것 둘 중 어떤게 더 설계상 더 나을 지 궁금합니다.

  • JPA
  • jpa
  • java
kim1234123 댓글 1 좋아요 0 조회수 1129

서브쿼리 alias orderby 방법이 있나요 ?

미해결

실전! Querydsl

안녕하세요 querydsl 코딩하다 막히는부분이 있어 질문글 남깁니다. return applyPagination(pageable, contentQuery -> contentQuery .selectDistinct(new QLocationDetailDto( member.idx.as("idx"), member.nickname.as("nickname"), member.memberImg.as("img"), ExpressionUtils.as( JPAExpressions.selectDistinct(qaComment.qa.idx.count()) .from(qaComment) .join(qaComment.qa, qa) .where(qaComment.member.eq(member)), "answerCount")) ) .from(member) .leftJoin(member.memberAddress, memberAddress) .leftJoin(member.qaComments, qaComment) .where( memberAddress.cityIdx.eq(cityIdx), member.grade.ne(QUIT), member.phoneNum.isNotNull(), memberEqualsRegion(regionIdx) ) .orderBy("answerCount").desc() ); orderBy에 서브쿼리 이름명을 넣고싶은데 안되는거같아 문의드립니다 다른방법이 있을까요

  • jpa
  • JPA
  • java
김준엽 댓글 1 좋아요 0 조회수 2475

31강 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

사진과 같이 대출기능을 실행할 때 java.sql.SQLSyntaxErrorException: Unknown column 'userloanhi0_.bookname' in 'where clause' 라는 오류가 발생하여 진도가 안 나갑니다 ㅠㅠ... 테이블, 컬럼명도 똑같이 만들고, 선생님 코드랑 똑같은데 왜 안될까요 ...... 혼자서 해결해보려고 몇 시간을 헤매었지만 너무 힘드네요 ㅠㅠ 도와주세요 선생님.......

  • spring-boot
  • aws
  • spring
  • mysql
  • java
  • jpa
  • JPA
댓글 2 좋아요 1 조회수 838

질문 join

미해결

실전! 스프링 데이터 JPA

@Entity public class board { @Id @GeneratedValue @Column(name = "bno") private Long id; private String filename; } file에서 board를 join했습니다. @Query("select f from file f join fetch f.board on f.board =: bno") List<file> findByBno(@Param("bno") int bno); } 이부분에서 int로 board.getId 로 넘겨서 위와같이 join을 하고 싶은데 안됩니다 board의 pk값을 file에서 where을 걸었는데 안됩니다. 오류 :Caused by: java.lang.IllegalArgumentException

  • JPA
  • spring
  • spring-boot
  • jpa
  • spring-boot
  • java
kim1234123 댓글 1 좋아요 0 조회수 383

쓰기지연SQL저장소는 정말 스냅샷과 비교하나요?

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) CrudRepository의 Save 함수는 파라미터로 전달받은 객체의 PK컬럼의 값 존재 유무에 따라서 값이 없을 경우 persist 함수를 이용해, 값이 있을 경우 merge 함수를 통해 객체를 영속화 하는 메서드로 이해 하고 있습니다. 우선 저는 이러한 엔티티를 가지고 있습니다. package my.test.testproject.domain; import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import javax.persistence.*; @Entity @Getter @Setter @ToString @Table(name = "person") @DynamicInsert @DynamicUpdate public class Person { @Id Long id; String name; public Person() { } public Person(Long id, String name) { this.id = id; this.name = name; } } 그리고 이러한 코드가 실행이 됩니다 @Test @Transactional void PersonTest9() { Person person = new Person(300L, "Firmino"); personRepository.save(person); } 참고로 Id가 300인 데이터는 이미 실제 데이터베이스에 존재하고 있습니다. 이 경우에 save를 호출할 경우 PK값이 존재하기에 merge를 호출하고 객체가 영속화 되어서 트랜잭션이 커밋되면 변경감지를 통해 쓰기지연SQL저장소에 SQL이 생성이 될텐데 바로 이 SQL이 생성되는 과정에서 궁금한 점이 있습니다. 이 트랜잭션에서 Id가 300인 엔티티가 처음 영속화 되었습니다. 쓰기지연 SQL저장소에 SQL을 생성할때 스냅샷과 비교해서 SQL을 생성하는것으로 알고 있는데 그렇다면 이경우에는 제 예상에는 Insert 쿼리가 생성이 되어서 실행시 에러가 나야할것 같은데 실제로 실행을 해보면 select쿼리가 실행됩니다 Hibernate: select person0_.id as id1_1_0_, person0_.name as name2_1_0_ from person person0_ where person0_.id=? 결국 PK에 값이 있는 엔티티가 merge를 통해서 영속화 되었을때 이것을 쓰기지연 SQL저장소에 SQL을 만들때 스냅샷이 아닌 실제 데이터베이스와 비교해서 쿼리를 생성하는 것입니까? 제가 잘못 이해하고 있는 부분들이 있다면 알려주시기 바랍니다ㅠㅠ

  • jpa
  • java
  • JPA
심한수 댓글 1 좋아요 3 조회수 963

프록시의 특징 질문

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요! 영한님 질문 드립니다. 질문 1) 만약 동일한 트랜잭션안에서 처음에 em.getReference() 를 사용하면 프록시 객체 를 반환하고, em.find() 를 사용해도 프록시 객체 를 반환한다. 반대의 경우 동일한 트랜잭션안에서 처음에 em.find() 를 사용하면 실제 엔티티 가 반환되고, em.getReference() 를 사용해도 실제 엔티티 를 반환한다. 제가 이해한게 맞을까요? 질문 2) em.getReference() 를 사용하여 프록시 객체를 조회한 프록시 객체도 결국 EntityManager 를 사용하여 조회한 것이기 때문에 영속성 컨텍스트에서 관리 되는 것 같은데 맞을까요? 감사합니다.^^

  • jpa
  • java
  • JPA
개발하는쿼카 댓글 1 좋아요 2 조회수 586

offset 과 limit 값을 서버쪽으로 보내는 방식

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 강의에서는 페이징에 필요한 offset과 limit 값을 @RequestParam을 통해서 넘겨주는 것을 보았습니다. 그런데, 저는 현재 @RequestBody OrderSearchDto를 파라미터로 받아와 내부 필드인 멤버명이나 주문 상태를 검색조건으로 활용하고 있었습니다. 이런 경우에는 그냥 @RequestParam을 사용하지 않고, DTO에 offset과 limit 필드를 추가해서 검색과 페이징에 필요한 데이터를 OrderSearchDto 안에 한번에 받는것은 어떤지 궁금합니다. 보통 실무에서는 페이징에 필요한 값은 @RequestParam으로 받는 편인가요? 아니면 저의 발상처럼 OrderSearchDto 같은 DTO를 통해 @RequestBody로 받기도 하나요? 일반적인 관점에서 best practice가 따로 있는지 궁금합니다.

  • java
  • spring
  • jpa
  • JPA
  • spring-boot
이현준 댓글 1 좋아요 0 조회수 636

강의 들으면서 응용해서 테스트를 작성하고 있는데 자꾸 null인 상태라고 해서 질문드립니다.

미해결

실전! 스프링 데이터 JPA

강의를 들으면서 간단한 테스트 문을 작성해봤습니다. 근데 계속 NullPointerException이 발생해서 여러가지 테스트를 하면서 오류를 분석해보니answerList에 아무 값도 들어가지 않아서 자꾸 null이라고 뜨는데 대체 왜 그런지 모르겠어서 질문드립니다. 아래에는 오류 화면이고 Question, Answer 엔티티와 함께 테스트 코드도 같이 첨부하겠습니다. @Entity @Getter @Setter public class Question { @Id @GeneratedValue @Column(name = "question_id") private Long id; @Column(unique = true, length = 200) private String subject; @Column(unique = true, columnDefinition = "TEXT") private String content; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "question", cascade = CascadeType.REMOVE) private List<Answer> answerList; private LocalDateTime createDate; } @Entity @Getter @Setter public class Answer { @Id @GeneratedValue @Column(name = "answer_id") private Long id; @Column(columnDefinition = "TEXT") private String content; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "question_id") private Question question; private LocalDateTime createDate; } @SpringBootTest @Transactional class AnswerRepositoryTest { @Autowired private QuestionRepository questionRepository; @Autowired private AnswerRepository answerRepository; @Test public void 답변조회() throws Exception{ //given Question question = new Question(); question.setSubject("제목입니다."); question.setContent("본문입니다."); questionRepository.save(q); Question findQuestion = questionRepository.findById(question.getId()).get(); Answer answer = new Answer(); answer.setContent("답변입니다."); answer.setQuestion(findQuestion); answer.setCreateDate(LocalDateTime.now()); answerRepository.save(answer); //when List<Answer> answerList = findQuestion.getAnswerList(); //then assertEquals("답변입니다.",answerList.get(0).getContent()); } } 테스트 코드에서 findQuestion.getSubject/ findQuestion.getContent까지 다 잘 찾아지는데 딱 getAnswerList()만 하면 null이라고 뜹니다

  • spring-boot
  • spring-boot
  • JPA
  • jpa
  • java
  • spring
지호 댓글 1 좋아요 1 조회수 1254

페이징 질문입니다!!

미해결

실전! 스프링 데이터 JPA

영환님 항상 강의를 듣다가 궁금증이 있어 질문을 드립니다. 페이징 부분에서 Pageable를 파라미터와 응답값으로 그대로 사용하는 부분이 있습니다. 응답으로 Pageable를 그대로 사용하게 되면 Pageable객체와 last, totalPages 등이 전부 응답값으로 설정되게 되는데, 보통 실무에서나 프로젝트에서도 그대로 사용하나요?! 응답 값에서 필요한 부분만 추출해서 사용하는게 좋지 않나요? ("Page를 1부터 시작하기" 말고)

  • spring
  • java
  • spring-boot
  • jpa
  • JPA
  • spring-boot
rnqhstlr2297 댓글 1 좋아요 0 조회수 340

application.yml url설정

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

url: jdbc:h2:tcp://localhost/~/jpashop 요 부분에서 jpashop이 그냥 h2콘솔에서 설정한 이름이랑 서로 맞기만하면 되는건가요? 아니면 처음 프로젝트를 생성할때 설정한 groupid나 artifactid랑 맞춰야 하는건가요?

  • spring
  • 웹앱
  • java
  • 웹앱
  • spring-boot
  • jpa
  • JPA
ycllyo 댓글 1 좋아요 0 조회수 571

join()를 작성하지 않아도 자동으로 join을 해주는데 join()을 써주는 이유

미해결

실전! Querydsl

join()를 작성하지 않아도 자동으로 join을 해주는데 join()을 써주는 이유가 궁금합니다. @Test public void group() { List<Tuple> result = queryFactory .select(member.team.name, member.age.avg()) .from(member) // .join(member.team, team) .groupBy(member.team.name) .fetch(); Tuple teamA = result.get(0); Tuple teamB = result.get(1); assertThat(teamA.get(member.team.name)).isEqualTo("teamA"); assertThat(teamA.get(member.age.avg())).isEqualTo(15); //10, 20 assertThat(teamB.get(member.team.name)).isEqualTo("teamB"); assertThat(teamB.get(member.age.avg())).isEqualTo(35); //30, 40 } 제가 위와 같이 코드를 수정하여 돌려봤는데 테스트를 잘 통과하였고 생성된 sql에서도 join을 자동으로 해주었습니다. 따로 join()을 쓰신 이유가 있을까요?

  • jpa
  • java
  • JPA
김형민 댓글 1 좋아요 0 조회수 608

안녕하세요

미해결

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 복습 중 궁금한 부분이 있어 질문 드립니다. H2 데이터베이스를 실행하지 않더라도 스프링 내부 DB 에서 테스트가 가능하다고 하셨는데 스프링 내부적으로 H2 DB 를 사용하는 건가요? 그 데이터들은 어느 위치에 보관이 되고 있는지 휘발성인지도 궁금합니다 감사합니다.

  • java
  • spring-boot
  • jpa
  • spring
  • JPA
작성자 댓글 1 좋아요 0 조회수 310

인기 태그

인프런 TOP Writers

주간 인기글