에러모음

[JPA 에러] Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: Already value [org.springframework.jdbc.datasource.ConnectionHolder@630b8a55]

마디니 2023. 1. 29. 20:27
반응형

업무에서 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)으로 하고있었다.

 

 

[해결]

에러난 서비스클래스 이름을 바꿈

반응형