我程序里是这样删除的
private T_course course = new T_course();
course.setId(Integer.parseInt(request.getParameter("record_id")));
courseDAO.delete(course);public void delete(T o){
    getSession().delete(o);
}生成的sql语句是这样
delete from T_course where l_id=?程序里并没有写session.flush()这样的同步的语句,是hibernate框架里做的同步吗?为什么我写update()的时候,就必须手动写代码同步呢?
    public void update(T o) {
            Session session = getSession();
            session.update(o);
            session.flush();
        
   
    }

解决方案 »

  1.   

    Hibernate里面做更新的时候是使用事务的啊,提交事务的时候自动调用session.flush()方法。还用自己来?
      

  2.   

    lz为什么用session来呢?hibernate是可以不要手动写代码同步的。
      

  3.   

    DAO 继承hibernateSupport类就行了 里面有常用数据库操作的封装
      

  4.   

    hibernate 事务提交时默认是自动提交的
      

  5.   

    你这没报错? 那hibernate就太强大了
    我认为你这个T_course是瞬态的
    删除会报错正常的情况下我建议你根据id查询出这个 T_course 对象
    然后再进行删除
      

  6.   


    可是我不自己来flush的话,更新不起作用
      

  7.   


    那我现在用session,算不算用hibernate,如果算的话,为什么还要手动flush