我想在action中update数据库表中的一行记录,将其中的state从原来的空值变为D,现在的问题是总表中能更改,我要怎样才能把明细表中的state也更改掉啊?总表在页面上显示出来,明细表在action中写,不需要体现在页面上,只要数据库表中改就好了。两张表关联的是ID.

解决方案 »

  1.   

    两条语句写在一个transaction里
      

  2.   

    不明白楼主说什么?上面朋友说的应该是把两条语句都写在一个事务中。如下
    public void updateUser(final  User use)throws HibernateException{
    Session session=getSession();
    Transaction trans=session.beginTransaction();
    //在这里把两条语句写在事务中//
    trans.commit();
    session.close();
    不过我这边用的是hibernate,如果是jdbc就是把代码修改一下,原理是一样的,这样会把两条语句一起执行,否则都执行失败。
      

  3.   

    /**
      *删除订单
      
    */
    public String delet(){

    for(Long shortmsg_tot_id :selectedLongIds){
    BorderTotal order=new BorderTotal();

    order = borderTotalDao.read(shortmsg_tot_id);

    order.setState("D");

    order.setTot_money(null);
    order.setCate_num(null);
    order.setModify_date(new Date(System.currentTimeMillis()));
    borderTotalDao.saveOrUpdate(order);
    }

    return SUCCESS;
    }
    我写了这个程序,但是只能删除总表,怎样想把明细表中与总表关于id关联的state也同时更改掉啊?
      

  4.   

    在更新总表的同时更新明细表,上面说的够详细的了,用transaction就可以解决了