谁有没有删除hibernate一条记录的好点的方法.我对现有的方法受够了.
太笨重了。需要删除一条记录需要先查出该对象才能够remove。
我需要删除页面上选中的n条记录。就要查询n次。感觉还没有jdbc效率高。
我现在编写的系统采用了hibernate,srping,webwork,需要在现有的框架下添加一个删除功能,但是我又布想写hql。
写了段代码报错。
arr_id是页面上获得来的一个list,里面是要删除记录的id号。
news是一个news对象。存放新闻。
for(int i=0;i<arr_id.size();i++){
news=(News)verifyCodeDao.load(News.class, (String)arr_id.get(i));//查询记录
verifyCodeDao.remove(news);//移除记录 String stt=arr_id.get(i).toString();
System.out.print(stt);
}
不知道怎么搞了。有兄弟帮有空帮看下拉。
用Hibernate 3吗 ??? so easy !!
public int delNews(final List arr_id) {
return ( (Integer)this.getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session) throws SQLException,
HibernateException {
Query q = session.createQuery(
"delete net.csdn.News where arrid in (:ids)");
q.setParameterList("ids", arr_id);
return new Integer(q.executeUpdate());
}
})).intValue();
}
pigo at 2007-10-22 >

news=(News)verifyCodeDao.getObject(News.class, (String)arr_id.get(i));//查询记录
使用getObject()方法,或者 直接给一个id值测试一下了
我get,load 都不行,最后搞了条hql搞定了。昏
public List getNewsList(final int num) {
return (List) getHibernateTemplate().execute( new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
String hql = "FROM News n1 order by id desc" ;
Query query = session.createQuery( hql );
query.setMaxResults( num ) ;
List list = query.list();
if ( list.size() > 0 ) {
return list;
} else {
return null;
}
}
});
}