2010-11-04 12 views
6

Esta es una pequeña clase de prueba que tengo. El problema es que no está retrotrayendo la transacción después de cada ejecución de prueba. ¿Qué he hecho mal? :)No se puede hacer funcionar @Rollback para mi Spring JPA Integration Test

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = { "/META-INF/catalog-spring.xml" }) 
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) 
public class TermTest 
{ 
    @Autowired 
    private CatalogService service; 
    @Rollback(true) 
    @Test 
    public void testSimplePersist() 
    { 
     Term term = new Term(); 
     term.setDescription("Description"); 
     term.setName("BirdSubject8"); 
     term.setIsEnabled("F"); 
     term.setIsSystem("F"); 
     term.setTermType("TERM"); 
     service.createTerm(term); 
    } 
} 

y mi primavera config

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="catalog2"></property> 
</bean> 

<bean id="catalogService" class="com.moo.catalog.service.CatalogService"> 
    <property name="termDao" ref="termDao"></property> 
</bean> 

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 

<bean id="transactionManager" 
     class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

<tx:annotation-driven /> 

Respuesta

14

Usted necesita @Transactional además de @TransactionConfiguration:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = { "/META-INF/catalog-spring.xml" }) 
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) 
@Transactional 
public class TermTest { ... } 
+0

I l ove you! (respondiste demasiado rápido, necesitas otros 4 minutos, puedo aceptar una respuesta) – willcodejavaforfood

+1

exactamente la respuesta que habría dado si hubiera aparecido en el tiempo (+1) –

+0

@seanizer - Anularé tu comentario al menos :) – willcodejavaforfood

0

en la primavera de 4,0 TransactionConfiguration más tarde porque está en desuso

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = "/config/spring-config.xml") 
@Transactional 
public class UserTest { 
    @Rollback 
    public void test(){ 
    } 
} 
Cuestiones relacionadas