The "REQUIRES_NEW" means that it will always start a NEW transaction for the called service. But you're question still have 2 answers possible because you have to know (if you do not already) that transactional annotations only work on "Spring beans" which mean that if you have :
Code:
@Transaction(Propagation=REQUIRES_NEW)
class ServiceA implements IServiceA
{
public void methodA()
{
methodB();
}
public void methodB()
{
someCode;
}
}
Even if methodB gets the @Transaction annotation (from global class), if called inside methodA() it will not get a new transaction because the method is not called through Spring proxy.
Is it clear ?