我的 Webapp 中有以下 JSF 支持 bean
@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 非常相似)。