작성
·
85
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오
예
알려주신대로 그리고 강의파일에 있는대로 buil.gradle파이 ㄹ옵션도 따라했는데 에러가 발생합니다
방법을 알려주세요
매번 강의를 들을 때마다 강의보다 설정하는데 시간이 너무 오래 걸리고 힘듭니다 도와주세요
답변 2
0
안녕하세요. 안태승님
다음과 같이 javax.persistence 부분을
import javax.persistence.*;
jakarta.persistence로 다음과 같이 변경해주시면 됩니다.
import jakarta.persistence.*;
메뉴얼 - 1. 데이터 접근 기술 - 시작 -> 프로젝트 구조 설명 1 - 기본에 나오는 다음 부분을 참고해주세요.
### 주의! - 스프링 부트 3.0
스프링 부트 3.0을 선택하게 되면 다음 부분을 꼭 확인해주세요.
* 1. Java 17 이상을 사용해야 합니다.
* 2. javax 패키지 이름을 jakarta로 변경해야 합니다.
* 오라클과 자바 라이센스 문제로 모든 javax 패키지를 jakarta로 변경하기로 했습니다.
* 3. H2 데이터베이스를 2.1.214 버전 이상 사용해주세요.
패키지 이름 변경 예)
* JPA 애노테이션
* javax.persistence.Entity -> jakarta.persistence.Entity
* 스프링에서 자주 사용하는 @PostConstruct 애노테이션
* javax.annotation.PostConstruct -> jakarta.annotation.PostConstruct
* 스프링에서 자주 사용하는 검증 애노테이션
* javax.validation -> jakarta.validation
감사합니다.
. ____ _ __ _ _
/\\ / ___'_ __ _ ()_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
[32m :: Spring Boot :: [39m [2m (v3.2.0)[0;39m
[2m2025-03-25T21:08:56.452+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mh.itemservice.ItemServiceApplication [0;39m [2m:[0;39m Starting ItemServiceApplication using Java 17.0.6 with PID 13524 (C:\Users\Administrator\Desktop\스프링부트 공부\source\itemservice-db\bin\main started by Administrator in C:\Users\Administrator\Desktop\스프링부트 공부\source\itemservice-db)
[2m2025-03-25T21:08:56.454+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mh.itemservice.ItemServiceApplication [0;39m [2m:[0;39m The following 1 profile is active: "local"
[2m2025-03-25T21:08:56.843+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Bootstrapping Spring Data JPA repositories in DEFAULT mode.
[2m2025-03-25T21:08:56.889+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Finished Spring Data repository scanning in 40 ms. Found 2 JPA repository interfaces.
[2m2025-03-25T21:08:57.228+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat initialized with port 8080 (http)
[2m2025-03-25T21:08:57.234+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardService [0;39m [2m:[0;39m Starting service [Tomcat]
[2m2025-03-25T21:08:57.234+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardEngine [0;39m [2m:[0;39m Starting Servlet engine: [Apache Tomcat/10.1.16]
[2m2025-03-25T21:08:57.275+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.a.c.c.C.[Tomcat].[localhost].[/] [0;39m [2m:[0;39m Initializing Spring embedded WebApplicationContext
[2m2025-03-25T21:08:57.275+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 793 ms
[2m2025-03-25T21:08:57.372+09:00[0;39m [32mDEBUG[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.s.jdbc.datasource.DataSourceUtils [0;39m [2m:[0;39m Fetching JDBC Connection from DataSource
[2m2025-03-25T21:08:57.374+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mcom.zaxxer.hikari.HikariDataSource [0;39m [2m:[0;39m HikariPool-1 - Starting...
[2m2025-03-25T21:08:57.422+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mcom.zaxxer.hikari.pool.HikariPool [0;39m [2m:[0;39m HikariPool-1 - Added connection conn0: url=jdbc:h2:tcp://localhost/~/test user=SA
[2m2025-03-25T21:08:57.424+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mcom.zaxxer.hikari.HikariDataSource [0;39m [2m:[0;39m HikariPool-1 - Start completed.
[2m2025-03-25T21:08:57.452+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.hibernate.jpa.internal.util.LogHelper [0;39m [2m:[0;39m HHH000204: Processing PersistenceUnitInfo [name: default]
[2m2025-03-25T21:08:57.491+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36morg.hibernate.Version [0;39m [2m:[0;39m HHH000412: Hibernate ORM core version 6.3.1.Final
[2m2025-03-25T21:08:57.516+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.h.c.internal.RegionFactoryInitiator [0;39m [2m:[0;39m HHH000026: Second-level cache disabled
[2m2025-03-25T21:08:57.698+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.s.o.j.p.SpringPersistenceUnitInfo [0;39m [2m:[0;39m No LoadTimeWeaver setup: ignoring JPA class transformer
[2m2025-03-25T21:08:58.260+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.h.e.t.j.p.i.JtaPlatformInitiator [0;39m [2m:[0;39m HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
[2m2025-03-25T21:08:58.263+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mj.LocalContainerEntityManagerFactoryBean[0;39m [2m:[0;39m Initialized JPA EntityManagerFactory for persistence unit 'default'
[2m2025-03-25T21:08:58.432+09:00[0;39m [33m WARN[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mJpaBaseConfiguration$JpaWebConfiguration[0;39m [2m:[0;39m 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
[2m2025-03-25T21:08:58.444+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.s.b.a.w.s.WelcomePageHandlerMapping [0;39m [2m:[0;39m Adding welcome page: class path resource [static/index.html]
[2m2025-03-25T21:08:58.607+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.s.d.j.r.query.QueryEnhancerFactory [0;39m [2m:[0;39m Hibernate is in classpath; If applicable, HQL parser will be used.
[2m2025-03-25T21:08:59.021+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat started on port 8080 (http) with context path ''
[2m2025-03-25T21:08:59.026+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mh.itemservice.ItemServiceApplication [0;39m [2m:[0;39m Started ItemServiceApplication in 2.823 seconds (process running for 3.189)
[2m2025-03-25T21:08:59.027+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mhello.itemservice.TestDataInit [0;39m [2m:[0;39m test data init
[2m2025-03-25T21:08:59.044+09:00[0;39m [32mDEBUG[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36morg.hibernate.SQL [0;39m [2m:[0;39m insert into item (item_name,price,quantity,id) values (?,?,?,default)
[2m2025-03-25T21:08:59.047+09:00[0;39m [33m WARN[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.h.engine.jdbc.spi.SqlExceptionHelper [0;39m [2m:[0;39m SQL Error: 42102, SQLState: 42S02
[2m2025-03-25T21:08:59.048+09:00[0;39m [31mERROR[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.h.engine.jdbc.spi.SqlExceptionHelper [0;39m [2m:[0;39m Table "ITEM" not found; SQL statement:
insert into item (item_name,price,quantity,id) values (?,?,?,default) [42102-224]
[2m2025-03-25T21:08:59.052+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mp6spy [0;39m [2m:[0;39m #1742904539052 | took 0ms | rollback | connection 2| url jdbc:h2:tcp://localhost/~/test
;
[2m2025-03-25T21:08:59.065+09:00[0;39m [31mERROR[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.s.boot.SpringApplication [0;39m [2m:[0;39m Application run failed
org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement [Table "ITEM" not found; SQL statement:
insert into item (item_name,price,quantity,id) values (?,?,?,default) [42102-224]] [insert into item (item_name,price,quantity,id) values (?,?,?,default)]; SQL [insert into item (item_name,price,quantity,id) values (?,?,?,default)]
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:277) ~[spring-orm-6.1.1.jar:6.1.1]
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) ~[spring-orm-6.1.1.jar:6.1.1]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) ~[spring-orm-6.1.1.jar:6.1.1]
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-6.1.1.jar:6.1.1]
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335) ~[spring-tx-6.1.1.jar:6.1.1]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-6.1.1.jar:6.1.1]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.1.jar:6.1.1]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) ~[spring-aop-6.1.1.jar:6.1.1]
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-6.1.1.jar:6.1.1]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:385) ~[spring-tx-6.1.1.jar:6.1.1]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.1.1.jar:6.1.1]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.1.jar:6.1.1]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) ~[spring-aop-6.1.1.jar:6.1.1]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717) ~[spring-aop-6.1.1.jar:6.1.1]
at hello.itemservice.repository.jpa.JpaItemRepositoryV3$$SpringCGLIB$$0.save(<generated>) ~[main/:na]
at hello.itemservice.TestDataInit.initData(TestDataInit.java:22) ~[main/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:365) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:237) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:168) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:445) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.boot.context.event.EventPublishingRunListener.ready(EventPublishingRunListener.java:109) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplicationRunListeners.lambda$ready$6(SpringApplicationRunListeners.java:80) ~[spring-boot-3.2.0.jar:3.2.0]
at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplicationRunListeners.ready(SpringApplicationRunListeners.java:80) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:341) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar:3.2.0]
at hello.itemservice.ItemServiceApplication.main(ItemServiceApplication.java:30) ~[main/:na]
Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement [Table "ITEM" not found; SQL statement:
insert into item (item_name,price,quantity,id) values (?,?,?,default) [42102-224]] [insert into item (item_name,price,quantity,id) values (?,?,?,default)]
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:66) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.jdbc.internal.MutationStatementPreparerImpl$StatementPreparationTemplate.prepareStatement(MutationStatementPreparerImpl.java:110) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.jdbc.internal.MutationStatementPreparerImpl.prepareStatement(MutationStatementPreparerImpl.java:60) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.id.insert.GetGeneratedKeysDelegate.prepareStatement(GetGeneratedKeysDelegate.java:86) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.jdbc.mutation.internal.ModelMutationHelper.lambda$identityPreparation$1(ModelMutationHelper.java:132) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.jdbc.mutation.internal.PreparedStatementDetailsStandard.resolveStatement(PreparedStatementDetailsStandard.java:87) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.id.insert.GetGeneratedKeysDelegate.performInsert(GetGeneratedKeysDelegate.java:103) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.jdbc.mutation.internal.MutationExecutorPostInsertSingleTable.execute(MutationExecutorPostInsertSingleTable.java:100) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.persister.entity.mutation.InsertCoordinator.doStaticInserts(InsertCoordinator.java:171) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.persister.entity.mutation.InsertCoordinator.coordinateInsert(InsertCoordinator.java:112) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2860) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:667) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:290) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:271) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:321) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:386) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:300) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:219) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:134) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:175) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.persist(DefaultPersistEventListener.java:93) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:77) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:54) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:766) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:750) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:311) ~[spring-orm-6.1.1.jar:6.1.1]
at jdk.proxy2/jdk.proxy2.$Proxy105.persist(Unknown Source) ~[na:na]
at hello.itemservice.repository.jpa.JpaItemRepositoryV3.save(JpaItemRepositoryV3.java:37) ~[main/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) ~[spring-aop-6.1.1.jar:6.1.1]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.1.jar:6.1.1]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.1.jar:6.1.1]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) ~[spring-aop-6.1.1.jar:6.1.1]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-6.1.1.jar:6.1.1]
... 32 common frames omitted
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEM" not found; SQL statement:
insert into item (item_name,price,quantity,id) values (?,?,?,default) [42102-224]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:514) ~[h2-2.2.224.jar:2.2.224]
at org.h2.engine.SessionRemote.readException(SessionRemote.java:650) ~[h2-2.2.224.jar:2.2.224]
at org.h2.engine.SessionRemote.done(SessionRemote.java:619) ~[h2-2.2.224.jar:2.2.224]
at org.h2.command.CommandRemote.prepare(CommandRemote.java:78) ~[h2-2.2.224.jar:2.2.224]
at org.h2.command.CommandRemote.<init>(CommandRemote.java:50) ~[h2-2.2.224.jar:2.2.224]
at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:487) ~[h2-2.2.224.jar:2.2.224]
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1166) ~[h2-2.2.224.jar:2.2.224]
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93) ~[h2-2.2.224.jar:2.2.224]
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:1094) ~[h2-2.2.224.jar:2.2.224]
at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:334) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java) ~[HikariCP-5.0.1.jar:na]
at com.p6spy.engine.wrapper.ConnectionWrapper.prepareStatement(ConnectionWrapper.java:133) ~[p6spy-3.9.0.jar:na]
at org.hibernate.engine.jdbc.internal.MutationStatementPreparerImpl$2.doPrepare(MutationStatementPreparerImpl.java:58) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
at org.hibernate.engine.jdbc.internal.MutationStatementPreparerImpl$StatementPreparationTemplate.prepareStatement(MutationStatementPreparerImpl.java:100) ~[hibernate-core-6.3.1.Final.jar:6.3.1.Final]
... 73 common frames omitted
[2m2025-03-25T21:08:59.082+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mj.LocalContainerEntityManagerFactoryBean[0;39m [2m:[0;39m Closing JPA EntityManagerFactory for persistence unit 'default'
[2m2025-03-25T21:08:59.084+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mcom.zaxxer.hikari.HikariDataSource [0;39m [2m:[0;39m HikariPool-1 - Shutdown initiated...
[2m2025-03-25T21:08:59.088+09:00[0;39m [32m INFO[0;39m [35m13524[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mcom.zaxxer.hikari.HikariDataSource [0;39m [2m:[0;39m HikariPool-1 - Shutdown completed.
답변해주신 문제를 해결하니 위와같은 문제가 발생합니다.
그래서
/itemservice-db/src/main/java/hello/itemservice/domain/
위 위치에 Qitem.java를 만들어주고
application-properties에
또 마이바티스@mapper 나 @param 어노테이션이 import가 안돼서
build gradle에 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
위의존성을 추가했습니다
위옵션을 추가하니까 해결이 되서 run이 되는데 위 방법을 사용해도 될까요?? 문제가 없을까요? 프로젝트를 진행하는데
소스 링크입니다.
0
안녕하세요, 안태승님, 인프런 AI 인턴입니다.
현재 JPAQueryFactory
생성자에서 “The constructor JPAQueryFactory(EntityManager) is undefined”라는 오류가 발생하고 계시네요. 이는 주로 QueryDSL 라이브러리의 호환성 문제나 잘못된 버전 설정에서 비롯될 수 있습니다. 문제 해결을 위한 몇 가지 단계를 제안드립니다.
JPAQueryFactory
의 생성자에서 EntityManager를 받을 수 없는 경우, 사용 중인 QueryDSL 버전과 호환성 문제일 수 있습니다. 최신 버전에서는 구조가 변경되었을 수 있으므로, 다음 버전 중 하나로 설정해 보시기 바랍니다:
// QueryDSL 의존성 설정 예시
implementation 'com.querydsl:querydsl-jpa:5.0.0' // 필요에 따라 버전 조정
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jpa"
빌드가 정상적으로 이루어지기 위해서는 Annotation Processor가 올바르게 설정되어 있어야 합니다. 설정 파일에서 annotationProcessor
부분이 올바르게 설정되어 있는지 확인하세요.
File -> Invalidate Caches / Restart
를 통해 캐시를 제거하고 재시작해 보세요.Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
에서 Enable annotation processing 체크란이 활성화되어 있는지 확인하세요.이전 수강생들이 유사한 문제를 경험했으며, 다음 관련 링크 또한 큰 도움이 될 수 있습니다:
위의 해당 링크들을 참조하여 문제를 해결할 수 있습니다. 추가적으로 궁금한 점이 있으시다면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
https://drive.google.com/drive/folders/1Aq7rxtobHBlO-yoftHXxpkt0fbvOl4Xp?usp=sharing
파일 구글 링크입니다
1.어떤 의미로 말하시는건지 모르겠습니다만. compile 에러로 인해 실행이 안되는 문제입니다.
스프링 부트를 (이클립스)로 구동 하려고하면 아래와같은 로그가 콘솔에찍힙니다.
. ____ _ __ _ _
/\\ / ___'_ __ _ ()_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
[32m :: Spring Boot :: [39m [2m (v3.2.0)[0;39m
[2m2025-03-22T13:09:55.889+09:00[0;39m [32m INFO[0;39m [35m5008[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mh.itemservice.ItemServiceApplication [0;39m [2m:[0;39m Starting ItemServiceApplication using Java 17.0.6 with PID 5008 (C:\Users\Administrator\Desktop\스프링부트 공부\source\itemservice-db\bin\main started by Administrator in C:\Users\Administrator\Desktop\스프링부트 공부\source\itemservice-db)
[2m2025-03-22T13:09:55.891+09:00[0;39m [32m INFO[0;39m [35m5008[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mh.itemservice.ItemServiceApplication [0;39m [2m:[0;39m The following 1 profile is active: "local"
[2m2025-03-22T13:09:56.226+09:00[0;39m [32m INFO[0;39m [35m5008[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Bootstrapping Spring Data JPA repositories in DEFAULT mode.
[2m2025-03-22T13:09:56.275+09:00[0;39m [32m INFO[0;39m [35m5008[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Finished Spring Data repository scanning in 40 ms. Found 2 JPA repository interfaces.
[2m2025-03-22T13:09:56.367+09:00[0;39m [33m WARN[0;39m [35m5008[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mConfigServletWebServerApplicationContext[0;39m [2m:[0;39m Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalStateException: Unable to load cache item
[2m2025-03-22T13:09:56.373+09:00[0;39m [32m INFO[0;39m [35m5008[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36m.s.b.a.l.ConditionEvaluationReportLogger[0;39m [2m:[0;39m
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
[2m2025-03-22T13:09:56.384+09:00[0;39m [31mERROR[0;39m [35m5008[0;39m [2m---[0;39m [2m[ main][0;39m [2m[0;39m[36mo.s.boot.SpringApplication [0;39m [2m:[0;39m Application run failed
java.lang.IllegalStateException: Unable to load cache item
at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:75) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:130) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:317) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:562) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:407) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:138) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:109) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:533) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:310) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:363) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:153) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) ~[spring-context-6.1.1.jar:6.1.1]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar:3.2.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar:3.2.0]
at hello.itemservice.ItemServiceApplication.main(ItemServiceApplication.java:30) ~[main/:na]
Caused by: java.lang.NoClassDefFoundError: EntityManager
at java.base/java.lang.Class.getDeclaredConstructors0(Native Method) ~[na:na]
at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3373) ~[na:na]
at java.base/java.lang.Class.getDeclaredConstructors(Class.java:2555) ~[na:na]
at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:655) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:35) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:26) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.core.ClassLoaderAwareGeneratorStrategy.generate(ClassLoaderAwareGeneratorStrategy.java:57) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:366) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:575) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.core.AbstractClassGeneratorClassLoaderData.lambdanew$1(AbstractClassGenerator.java:107) ~[spring-core-6.1.1.jar:6.1.1]
at org.springframework.cglib.core.internal.LoadingCache.lambdacreateEntry1(LoadingCache.java:52) ~[spring-core-6.1.1.jar:6.1.1]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:57) ~[spring-core-6.1.1.jar:6.1.1]
... 20 common frames omitted
Caused by: java.lang.ClassNotFoundException: EntityManager
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]
... 33 common frames omitted