浏览 2898 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-04
public void deleteBatch(int userid) throws Exception{ String hql = "DELETE FROM Stock AS stock WHERE stock.userid=?"; Connection conn = (Connection) session.connection(); PreparedStatement pstmt = conn.prepareStatement(hql); pstmt.setInt(1, userid); pstmt.executeUpdate(); pstmt.close(); conn.close(); } //这是它所报的异常 java.lang.ClassCastException: $Proxy0 at com.icxq.impl.StockDAOImpl.deleteBatch(StockDAOImpl.java:51) at com.test.Test.main(Test.java:12) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-08-04
说实在的没有看懂你的这部分代码的意思.
如果你想使用hibernate进行删除. 直接用 session.delete(Object); 这个Obejct对象就是含有oid的要被删除的实体. 比如你这个例子里的 Stock Stock stock=new Stock(); stock.setOid("1"); session.delete(stock); 就可以了. |
|
返回顶楼 | |
发表时间:2008-08-04
7upCat 写道 说实在的没有看懂你的这部分代码的意思.
如果你想使用hibernate进行删除. 直接用 session.delete(Object); 这个Obejct对象就是含有oid的要被删除的实体. 比如你这个例子里的 Stock Stock stock=new Stock(); stock.setOid("1"); session.delete(stock); 就可以了. 谢谢你的关注,我明白你的意思,但我想实现一个批量删除,JDBC删除的效率高于“ session.delete(stock);” 所以我想“转换” 希望说明白了^_^ |
|
返回顶楼 | |
发表时间:2008-08-04
ada1230 写道 我想实现一个批量删除,JDBC删除的效率高于“ session.delete(stock);”
所以我想“转换” 希望说明白了^_^ 若想利用hibernate的删除功能,还想批量,个人不知道有什么办法 因为在hibernate中的delete方法,是delete(stock对象),而此处是以其id定位,随之删除, 不似进行 insert、update 操作会有缓存处理 |
|
返回顶楼 | |
发表时间:2008-08-05
使用Hibernate实现批量删除其实很容易。例如
Query q = session.createQuery( "delete Stock s where s.userId = :userid"); q.setParameter("userid", userid, Integer); q.executeUpdate(); 不过要注意批量操作直接更改数据库,没有更新Hibernate的一级、二级缓存 |
|
返回顶楼 | |
发表时间:2008-08-06
删除的时候。注意内存溢出
|
|
返回顶楼 | |
发表时间:2008-08-06
卡拉阿风 写道
删除的时候。注意内存溢出
为什么要注意这一点,能否详细说说? |
|
返回顶楼 | |