【发布时间】:2012-01-15 10:44:31
【问题描述】:
我的 Web 应用中有以下 JSF 支持 bean
@ManagedBean
class MyBackingBean implements Serializable {
private MyHibernateRepository repository;
...
@Transactional
public void save() {
....
repository.save(myObject);
}
}
当它到达 repository.save 方法调用时 - 我收到以下错误
no transaction is in progress
我有两个问题
- 这是因为like this 的错误吗?
- 我相信有两种解决方法 - 还有其他解决方法吗?
2.1 第一个解决方法 - 使用
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
repository.save(myObject);
}
});
2.2 第二种解决方法
创建一个辅助类并对其进行注释。
2.3(可能的第三种解决方法是在内部类的方法上注释@Transactional 这与2.2 非常相似)。
【问题讨论】:
标签: spring jsf-2 managed-bean transactional spring-transactions