hibernate 更新不成功问题
如下:代码执行到了update语句,但是没有修改成功
- Java code
sql = String.format("select * from %s where dg_id=%d and id=%d",sumo.getTableName(),sumo.getDgId(),sumo.getTraitId()); Session session = sessionFactory.openSession(); Transaction tx = null; try { //开启事物 tx = session.beginTransaction(); //获取修改的那条记录 List<TraitStrTrees> list = session.createSQLQuery(sql).addEntity(TraitStrTrees.class).list(); if(list.size()==0){ return ; } TraitStrTrees tst = list.get(0); List<Integer> intList = SUUtil.parsingBinary(tst.getArticles()); if(intList.size()==0){ //说明数据有误,但也可以直接添加 }else if(intList.size()==1){ //直接修改 tst.setTrait_value(sumo.getTraitItemValue()); session.update(tst); }else{ //删除后再修改,最后添加一条记录 } //提交事物 tx.commit(); } catch (Exception e) { e.printStackTrace(); } finally { session.close(); }[解决办法]
设断点有没有到tx.commit();
测试那个修改SQL语句是否正确;
[解决办法]
tst.setTrait_value(sumo.getTraitItemValue());看下这个sumo.getTraitItemValue())有值没
[解决办法]
对于PO对象的更新,无须再显示session.update(tst)。。。
[解决办法]
如果走到了tx.commit();也不报异常
那就不知道什么错误了,打印下tst里面的属性值。看下你封装的对象