我需要在一个事务中管理 2 个 Dao 方法,其中任何一个失败都应该回滚另一个。调用方法在服务层。Spring 和 Hibernate 原生 sql 查询中使用的技术。有没有办法做到这一点?
调用方法::
@Transactional(propagation= Propagation.REQUIRED)
public String save(AllowFileTypesForm formBeanObj,Hashtable global)
调用方法1::
public boolean deleteData( String strTableName,String strWhereClause) {
Session session = sessionFactory.getCurrentSession();
String strSqlQuery = null;
boolean deleted=false;
strSqlQuery = "DELETE FROM Persons where" + strWhereClause;
try {
Query query=session.createSQLQuery(strSqlQuery);
if (query.executeUpdate() <= 0) {
throw new SQLException("No row deleted from table " +strTableName);
}
else{
deleted=true;
}
}
catch(Exception e){
e.printStackTrace();
}
return deleted;
}
与此方法类似,还有另一种方法可以从其他表中删除数据。