반응형
업무에서 JPA 를 사용하고 있는데 다음과 같은 에러를 만남
[오류]
[2020-09-24 11:21:02,554] [http-nio-8080-exec-5] ERROR c.s.c.web.EntityExceptionHandler.handlerException: 58 - [!] 예외 발생 - INTERNAL_SERVER_ERROR :: CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: Already value [org.springframework.jdbc.datasource.ConnectionHolder@630b8a55] for key [HikariDataSource (nhomedb_master)] bound to thread [http-nio-8080-exec-5]
[2020-09-24 11:21:02,555] [http-nio-8080-exec-5] ERROR c.s.c.web.EntityExceptionHandler.handlerException: 59 - STACK TRACE :: org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: Already value [org.springframework.jdbc.datasource.ConnectionHolder@630b8a55] for key [HikariDataSource (nhomedb_master)] bound to thread [http-nio-8080-exec-5]
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:431)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:427)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:276)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:656)
...
(중략)
...
Caused by: java.lang.IllegalStateException: Already value [org.springframework.jdbc.datasource.ConnectionHolder@630b8a55] for key [HikariDataSource (nhomedb_master)] bound to thread [http-nio-8080-exec-5]
at org.springframework.transaction.support.TransactionSynchronizationManager.bindResource(TransactionSynchronizationManager.java:190)
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:406)
... 79 more
이미 JPA 매니저가 존재한다고??
[원인]
코드상에 JPA 매니저를 2개를 사용중인데, 식별을 클래스 명(xxxService)으로 하고있었다.
[해결]
에러난 서비스클래스 이름을 바꿈
반응형