Versions Compared

Key

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

...

Code Block
languagejava
titleWykonanie kilku operacj w jednej transakcji
@Service
public class CustomeServiceImplCustomServiceImpl
    implements CustomService
{
	@Autowired
    private StructureService psstructureService;

    @Transactional
    public void addPositionAndOu()
    {
        Position p = new Position( "name", "symbol" );
        OrganizationalUnit ou = new OrganizationalUnit();
        ou.setName( "name" );
        ou.setSymbol( "symbol" );
        psstructureService.createPosition( p );
        psstructureService.createOrganizationalUnit( ou );
    }

    public void addPositionAndOuNonTransactional()
    {
        Position p = new Position( "name", "symbol" );
        OrganizationalUnit ou = new OrganizationalUnit();
        ou.setName( "name" );
        ou.setSymbol( "symbol" );
        psstructureService.createPosition( p );
        psstructureService.createOrganizationalUnit( 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.

Code Block
languagejava
titlePobranie własnego serwisu w zadaniu automatycznym
    public static void execute()
    {
        ClientService cs = SpringContext.getBean( ClientService.class );
		cs.addPositionAndOu();
    }
Przydatne zasoby:

...