У меня есть фасоль с функцией @Transactional.Строгая альтернатива примечанию Spring @Transactional
public class ABean{
@Transactional
public void method aMethod(){
//do some job with Hibernate.
}
}
Но теперь мне нужно вызвать этот метод из другого метода, который должен быть назван не в контексте Spring (в Quartz контексте на самом деле):
public class ABean implements org.quartz.Job{
@Transactional
public void method aMethod(){
//do some job with Hibernate.
}
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("start...");
//@Transactional annotation is ignored here
//so I have 'Could not obtain transaction-synchronized Session
//for current thread' exception.
aMethod();
System.out.println("done");
}
}
Как я понимаю аннотацию @Transactional просто как-то оборачивает метод с некоторым другим кодом. Итак, как я должен обернуть вызов aMethod(), чтобы вызвать его точно так же, как вызовы Spring?
Возможный дубликат метода вызова метода Spring @Transaction методом одного и того же класса?] (Http://stackoverflow.com/questions/3423972/spring-transaction-method-call-by-the- method-in-the-same-class-does-not-wo) –