2012-04-25 3 views
0

웹 애플리케이션을 개발하는 중이고 스프링 데이터를 사용하는 것이 좋습니다. 공정하기 때문에 삶이 매우 쉬우 며 DAO 층이 매우 얇아집니다.Spring 데이터, Hibernate 4.1.1 및 Spring JTA 트랜잭션 관리자

데이터 지속성과 관련된 문제가 있습니다. JPATransactionManager를 사용할 때 영속성이 예상대로 작동합니다. 하지만 JTATransactionManager를 사용해야합니다. 내가 이것을 사용하는 경우는 트랜잭션이 잘 보이는 것으로 나타나지만 최대 절전 모드 플러시

DEBUG [의 org.springframework.transaction.jta.JtaTransactionManager] (HTTP 커밋 텍사스와 연결하지 않는 것 - 127.0.0.1을 -8080-2) 이름이 [com.clubgroups.user.registration.service.impl.UserRegistrationServiceImpl.registerUser] 인 새 트랜잭션 생성 : PROPAGATION_REQUIRED, ISOLATION_DEFAULT; ''

DEBUG [의 org.springframework.transaction.jta.JtaTransactionManager] (HTTP - 127.0.0.1-8080-2) 기존 트랜잭션에 참여

DEBUG [의 org.springframework.transaction.jta.JtaTransactionManager] (http - 127.0.0.1-8080-2) 트랜잭션 커밋 시작

위의 내용은 트랜잭션이 커밋되고 있음을 확인하는 디버그 메시지입니다. 그러나 데이터가 데이터베이스로 플러시되지 않는 것 같습니다.

나는 다음과 같이 트랜잭션 관리자를 초기화 :

@Bean 
public JpaTransactionManager transactionManager() { 
    JtaTransactionManager transactionManager = new JtaTransactionManager();  

    return transactionManager; 
} 

어떤 도움도 좋은 것입니다.

+0

어쩌면 당신은 어딘가에 읽기 전용 플래그를 넣을 수 있습니까? 아니면 FlushMode를 MANUAL로 바 꾸었습니까? –

답변

0

매우 예외적이므로 JTA 설정에 대해 다소 의문이 있습니다. 먼저, JTA 트랜잭션을 올바르게 설정하는 방법에 대해 the reference documentation을 살펴보십시오. JtaTransactionManager을 간단히 인스턴스화하는 것은 어떤 방법으로 JNDI에서 UserTransaction을 얻어야하므로 작동하지 않습니다. @Bean 메서드에서 afterPropertiesSet()을 호출하면 오류가 표시됩니다. 누락 된 구성이 공개됩니다.

관련 문제