session.save()完后,直接用session.flush()能不能写进数据库里?
书上说在Persistence状态使用flush()可以把数据写进数据库里,但我这里只能用commit才能将数据写进数据库里。

解决方案 »

  1.   

    这个是把缓冲区的清空放到DB中!但是还是需要commit一下一般的数据库机制都是:提交读,  可以自己设置未提交读    这样你不coommit  在数据库中也会看到!
      

  2.   

    flush()--- 内存中的对象的状态同步到JDBC连接中session.save()完后,直接用session.flush()能不能写进数据库里?这个问题的结果是“能”;但是你得在hibernate.config.xml设置autoCommit = true的话是可以更改
    数据库的
      

  3.   

    session.flush()的时候已经在数据库里了,只是你查询不出来,这是数据库的模式有关,默认是不能被查询的,需要commit后才能被读取,数据库有3种模式(具体的我忘了,我也是新手太急于学习java,所以没太记住)
      

  4.   

    flush()执行一系列SQL语句使session中的数据与数据库同步,并且清空了session缓存,但不会提交事务,只有在commit后才会真正把数据写进数据库,commit()方法会先调用flush()方法,然后提交事务。提交事务意味着对数据库所做的更新被永久保存下来。
      

  5.   

    如果对象是Persistence状态的话,用flush()就可以,不需要提交,还有比如你将某个对象的属性改变,直接update()就可以同步到数据库中去,也不需要提交,其它情况的话需要手动commit()的