hibernate save for循环保存只保存最后一次

来源:互联网 发布:微信分享软件 编辑:程序博客网 时间:2024/06/06 02:22

for(int i = 0;i < 5;i++){
    session.save(obj);
    //session.flush();使用这个数据只保存最后一个对象
    //session.clear();使用这个5个对象会全部保存  求解
}
trans.commit();
session.close();

//session.flush();使用这个数据只保存最后一个对象
//session.clear();使用这个5个对象会全部保存  求解




因为你的OBJ没有变过,发你第一次发生SAVE时,这个OBJ就会从游离态变成持久态,当你第二次以及后面的SAVE时都是对OBJ持久态做操作,这时HIBERNATE不会向数据库发出INSERT命令,而是UPDATE命,所以不管你SAVE几次都是看到最后一条。若你想看到SAVE所有数据,你就得从新给HIBERNATE一个游离态对象。

在FOR里面通过NEW 来重新实例化这个OBJ,





原创粉丝点击