首先,这个解决方案对我来说是没有选择的,因为我无法更改持久性单元。
我的问题是我使用了 JTA EntityManager,但我只需要一个用例,比如事务:
public boolean saveWithResult(PointsValidityPeriod pointsValidityPeriod)
{
//TODO use transaction here
super.save(pointsValidityPeriod);
if (updatePrevious(pointsValidityPeriod.getValidFrom()) != 1)
{
logger.error("Update of Period was not possible, because UPDATE returned no single result.");
return false;
}
pointsValidityPeriodEvent.fire(pointsValidityPeriod);
return true;
}
保存方法(我无法更改):
public void save(T entity)
{
getEntityManager().persist(entity);
}
你看,有一个保存调用,但是如果更新出错,这个保存必须回滚,那么我该如何实现呢?有任何想法吗?