请问如何用Hibernate执行原生的sql的delete语句?
由于各种原因,必须用hibernate执行原生的sql语句,不能使用hql,请问如何用hibernate执行原生的delete语句呢?
------解决方案--------------------
首先要继承HibernateDaoSupport
然后在重写匿名方法:
如:
public List<Goods> queryByQry(GoodsQryHelper goodsQryHelper) {
log.debug("GoodsDaoImpl:根据查询条件查询物品信息");
final GoodsQryHelper qryObj = goodsQryHelper;
List<Goods> goodsList = getHibernateTemplate().executeFind(
new HibernateCallback() {
@Override
public Object doInHibernate(Session session)
throws
HibernateException,
SQLException {
StringBuffer hqlStr = generalSql(qryObj);
List<Goods> list = new ArrayList<Goods>();
try {
list = session.createQuery(hqlStr.toString())
.list();
} catch (Exception e) {
log.error("GoodsDaoImpl:物品信息获取失败!!!");
throw new DataAccessException("物品信息获取失败!!!", e);
}
return list;
}
});
return goodsList;
}