Wstęp
Zarządzanie transakcjami jest możliwe za pomocą adnotacji @Transactonal, @UserTransactional, oraz @SharkTransactional. Adnotacje te możemy używać tylko w klasach zarządzanych przez kontekst aplikacji.
...
Info | ||
---|---|---|
| ||
Zaleca się stosowanie adnotacji do zarządzania transakcjami w klasach oznaczonych adnotacją @Sevice |
Przykłady użycia
Code Block | ||||
---|---|---|---|---|
| ||||
@Service public class CustomeServiceImpl implements CustomService { @Autowired private PositionService ps; private OrganziationalUnitService ous; @Transactional public void addPositionAndOu(){ Position p=new Position(); p.setName( "name" ); p.setSymbol( "symbol" ); OrganizationalUnit ou=new OrganizationalUnit(); ou.setName( "name" ); ou.setSymbol( "symbol" ); ps.save(p); ous.save( ou ); } public void addPositionAndOuNonTransactional(){ Position p=new Position(); p.setName( "name" ); p.setSymbol( "symbol" ); OrganizationalUnit ou=new OrganizationalUnit(); ou.setName( "name" ); ou.setSymbol( "symbol" ); ps.save(p); ous.save( ou ); } } |
W powyższym przykładzie funkcja bez adnotacji @Transactional utworzy osobne transakcje dla każdej funkcji save, natomiast w funkcji oznaczonej @Transactional obie operacje będą działać na jednej tej samej transakcji.
Przydatne zasoby:
...