public int executeHql(String hql, Object... param) {
try {
int count = 0;
Session session = this.sessionFactory.getCurrentSession();
Query query = session.createQuery(hql);
for (int i = 0; i < param.length; i++) {
query.setParameter(i, param[i]);
}
count = query.executeUpdate();
return count;
} catch (HibernateException e) {
throw e;
}
}
service层已经加上了@Transactional(rollbackFor = Exception.class)注解,在执行多张表删除的时候,A表删除了,删除b表报错了。没有回滚。
这篇博客探讨了一个在服务层使用@Transactional注解进行事务管理的问题。在执行涉及多表删除的操作时,虽然A表删除成功,但在删除B表时遇到了错误,导致事务未能正常回滚,从而引发数据不一致。博主分析了可能的原因,如Hibernate配置、异常处理等,并寻求解决方案。
2万+

被折叠的 条评论
为什么被折叠?



