我用hibernate批量插入一个对象链表到数据库,为什么每次执行插入只是把最后一个数据插入数据库session = factory.openSession();
session.beginTransaction(); 
for(int i=0 ; i<logList.size() ; i++){
session.save(logList.get(i));

}
session.flush();
session.clear();
session.getTransaction().commit();
session.close();

解决方案 »

  1.   

    不是~~插入前打印过List的size不是1
      

  2.   

    谁让你遍历完了才commit的,session里面的save方法当然只能认识你最后一条了。
      

  3.   

    session = factory.openSession();
    session.beginTransaction(); 
    for(int i=0 ; i<logList.size() ; i++){
    session.save(logList.get(i));
                
    }
    session.flush();
    session.clear();
    session.getTransaction().commit();
    session.close();
    貌似这里的循序有问题、
      

  4.   

    四楼正解,每便利一次就要提交一次啦。
    <code=Java>
    session = factory.openSession();
    session.beginTransaction(); 
    for(int i=0 ; i<logList.size() ; i++){
    session.save(logList.get(i));
    session.flush();
    session.clear();
    session.getTransaction().commit();            
    }
    session.close();</code>
      

  5.   

    有可能list里的数据根本就是一条,你看看list是怎么生成的,可能是多条数据,放的都是同一个对像。
      

  6.   

    搞定了~~还是List的问题~~插入代码没问题