解决方案 »

  1.   

    你可以配置一下hibernate的 打出sql 日志,看看 打出的sql
      

  2.   

    事务的原因, 事务方法接收后session会自动flush, 会检测query出来的对象是否有修改,修改了便会更新到数据库.
      

  3.   

     事务方法结束后
    如果这样的话,除了像我这样new一个对象,然后把原始内容一一赋值拷贝过来,还有没有别的办法呢?
      

  4.   

     事务方法结束后
    如果这样的话,除了像我这样new一个对象,然后把原始内容一一赋值拷贝过来,还有没有别的办法呢?hibernate session的evict方法把query出来的对象在当前session中清除,就不会写到数据库了
      

  5.   

    这是hibernate对象中的三种状态.  java中对象时引用类型,你查询出来此时状态是游离状态, 修改了之后,在事物提交后hibenrate就给你修改了. 又变成持久状态了   你新  new 的 是瞬时状态,  只有在调用save 后 再能变成 游离状态,  在事物提交的时候变成 持久状态
      

  6.   

    关于这种情况, 可以自己使用  bytearrayoutputsteam    objectoutputstream        bytearrayinputstream  objectinputstream 这几个流进行序列化和反序列化,达到对象的克隆!   
      

  7.   

    这几种状态我倒是知道,我只是没想到,我只是查询,没有专门提交,hibernate居然会自动给我提交掉
      

  8.   

    这几种状态我倒是知道,我只是没想到,我只是查询,没有专门提交,hibernate居然会自动给我提交掉
    你开启事物没有?   查询其实不用开启事物,或者就是开启只读事物
      

  9.   

    事物的问题、Session session=  HibernateSessionFactory.getSession();获取session、不com就不会出现提交修改问题、LZ你要是真的纠结这个问题、先把spring中的SessionFactory的自动注入停下来、通过手动获取SessionFactory、就不会出现spring中事务和SessionFactory自动提交的效果了
      

  10.   

    这几种状态我倒是知道,我只是没想到,我只是查询,没有专门提交,hibernate居然会自动给我提交掉
    你开启事物没有?   查询其实不用开启事物,或者就是开启只读事物
    我对于hibernate的配置文件不太熟徐,如何看配置事务?在哪个xml文件中,关键字是什么?开启只读事务的关键是什么?谢谢了?
      

  11.   

    这几种状态我倒是知道,我只是没想到,我只是查询,没有专门提交,hibernate居然会自动给我提交掉
    你开启事物没有?   查询其实不用开启事物,或者就是开启只读事物
    我对于hibernate的配置文件不太熟徐,如何看配置事务?在哪个xml文件中,关键字是什么?开启只读事务的关键是什么?谢谢了?
    用spring没有??? 百度下 多的很
      

  12.   

    不com是什么意思?
    提交
    下面举一个查询的例子、修改跟他一样、不提交怎么可能
    public List<Tbl2ShopTrade> findJy() {
    // TODO Auto-generated method stub
    List list =new ArrayList();
    Session session=  HibernateSessionFactory.getSession();
    try {
    SessionFactory sf = HibernateSessionFactory.getSessionFactory();
    String Hql = "from 表名";
    Query query = session.createQuery(Hql);
    list = query.list();

    session.beginTransaction().commit();//我就是提交、不打我是修改不了数据库的
    } catch (Exception e) {

    session.beginTransaction().rollback();
    }finally{
    HibernateSessionFactory.closeSession();
    }
    return list;
    }
    你不提交
    也就是这段session.beginTransaction().commit();代码、不打的话绝对不会出现修改数据库的情况
      

  13.   

    上面那个SessionFactory是自己获取的、你要是用的SSH框架、Spring会自动注入SessionFactory和事务、所以会出现自动提交的问题、你把spring中的SessionFactory关了、自己获取
      

  14.   

    检查下你的spring里面的配置。如果没有执行其它的添加或者修改。只能是你配置的问题。或者你可以调试下。打印出你的sql语句。这些都是小问题。和是否重新实例化无关。