У меня в Webapp был следующий компонент поддержки JSF
@ManagedBean
class MyBackingBean implements Serializable {
private MyHibernateRepository repository;
...
@Transactional
public void save() {
....
repository.save(myObject);
}
}
Когда доходит до вызова метода repository.save
- я получаю следующую ошибку
no transaction is in progress
У меня естьполучил два вопроса
- Это из-за ошибки как это ?
- Я считаю, что есть два обходных пути - есть ли другие?
2.1 Первый обходной путь - использование
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
repository.save(myObject);
}
});
2.2 Второй обходной путь
Создайте вспомогательный класс и аннотируйте его.
2.3 (Возможный третий обходной путь - аннотировать @Transactional для метода внутреннего класса. Это очень похоже на 2.2).