读书人

请教怎么用Hibernate执行原生的sql的d

发布时间: 2012-11-08 08:48:11 作者: rapoo

请问如何用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;
}

读书人网 >Java Web开发

热点推荐