hibernate createSQLQuery(sql).executeUpdate 不执行

for(int j=0;j<list.size();j++){
TDiskCh cdisk = (TDiskCh)list.get(j);
Query query = session.createSQLQuery(sql);
query.setLong(0, cdisk.getYxsid());
query.setString(1, cdisk.getQysh());
query.setString(2, cdisk.getFwf());
query.setString(3,cdisk.getSkph());
query.setString(4, cdisk.getBsph());
query.setDate(5, cdisk.getXsrq());
query.setDate(6, cdisk.getJsrq());
query.setString(7, cdisk.getFwfid()==null?"":cdisk.getFwfid().toString());
query.setString(8, cdisk.getQydph());
query.setString(9, cdisk.getZbid()==null?"":cdisk.getZbid().toString());
int result = query.executeUpdate();
System.out.println(result);
chdao.delete(cdisk);
}
部分代码,执行到query.executeUpdate();程序终止,未抛出异常,后边代码也未执行,怎么回事
sql 是在前边 debug参数也都正确,只是执行到executeUpdate感觉就是线程进入阻塞状态停住了

已经解决,程序无问题。原因:plsqldevelop中对当前表做了DML操作,未提交事务。
谢谢

第1个回答  2015-04-30
其他代码没问题,SQL语句看下是否能获取到值,调试一下 看看SQL有没有报错,你的Id是自增还是怎么
第2个回答  2015-04-29
貌似是你的query已经读取了sql语句了,但是里面没值,你试试把Query query = session.createSQLQuery(sql);写到int result = query.executeUpdate();
这句话前面追问

是在前面啊

追答

写到query.setString(9, cdisk.getZbid()==null?"":cdisk.getZbid().toString());
这句话后面,因为你要给sql里面的?赋值之后再去读取sql语句

相似回答