Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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
titleDobre praktyki

Zaleca się stosowanie adnotacji do zarządzania transakcjami w klasach oznaczonych adnotacją @Sevice

 

Przykłady użycia

Code Block
languagejava
titleWykonanie kilku operacj w jednej transakcji
@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:

...