请问这个能执行删除操作么。要是不能的话,应该怎么写?
public int updateBySql(final String sql) {
return (Integer) getHibernateTemplate().executeWithNativeSession(
new HibernateCallback() {
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session)
throws HibernateException {
return session.createSQLQuery(sql).executeUpdate();
}
});
}
------解决方案--------------------
你这个方法是完全可以执行删除的。
return session.createSQLQuery(sql).executeUpdate();
createSQLQuery中的参数要求是原生态的sql语句(非HQL)。
executeUpdate()方法是执行你传过来的sql语句。你传进来的sql是update他就执行update,你传进来是insert他就执行insert。。。所以你要执行删除的话就老老实实传原生态的删除语句进来。。。。
getHibernateTemplate()是spring提供的。他对hibernate进行了托管。用getHibernateTemplate()的话事务代码不用你写了,spring帮你搞定了。。。
楼下的请补充。。。