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,