2012-08-05 10 views
6

Występuję jako test jednostkowy i automatycznie wraca, nawet jeśli nie korzystam z wersji @rollback wiosną 3.1. Mój testowy wyglądaCzy transakcja @Transactional automatycznie wycofuje transakcję w Spring 3?

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = { "classpath:application-context.xml" }) 
public class PersonServiceTest { 

    @Test 
    @Transactional 
    public void savePerson() { 
      Person person = createPerson(); 
      personService.savePerson(person); 
    } 
} 

Czy Wycofywanie zachowanie jest ustawiony domyślnie?

+0

TL; DR: Tak, jest to ustawienie domyślne. –

Odpowiedz

13

Domyślnie SpringJUnit4ClassRunner spowoduje automatyczne wycofanie transakcji.

Aby zanegować efekt, użyj @TransactionConfiguration(defaultRollback=false) w swojej klasie testowej lub @Rollback(false) w każdym teście.

+0

... w Spring 5, '@ Commit' zastępuje' @Rollback (false) ' –

Powiązane problemy