본문 바로가기

개발중/Java Persistence API (JPA)

[JPA ERROR] No qualifying bean of type 'org.springframework.transaction.TransactionManager' available

728x90
반응형

트랜잭션을 사용하려하는데 트랜잭션이 하나 이상일 때 발생하는 에러라고 한다.

 

트랙잭션에 우선순위를 @Primary @Qualifier 어노테이션을 사용해 부여할 수도 있지만

설정 파일에 트랜잭션 참조 설정을 추가해주는 방식으로 해결했다.

 

@Configuration
@PropertySource({ "classpath:application.properties" })
@EnableJpaRepositories(
        entityManagerFactoryRef = "pomsEntityManagerFactory"
        , transactionManagerRef = "pomsTransactionManager"
        , basePackages = "com.rsn.test.api.*.dao.*"
)
public class PomsJpaConfiguration extends PomsConfiguration {

   ... 

    @Primary
    @Bean(name = "pomsTransactionManager")
    public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
        JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
        jpaTransactionManager.setEntityManagerFactory(entityManagerFactory);
        return jpaTransactionManager;
    }
    
    ... 
}

 

참조 블로그

728x90
반응형