错误例子:
Pay pay=new Pay();
PayDAO paydao=new PayDAO();
for(int i=0;i<10;i++){
pay.setId(i);
pay.setName("第"+i+"个");
}
运行只有,数据库里只有一条数据。
解释:
当对一个new对象obj进行了第一次save之后, 该对象obj就会从游离态变为持久态,当你对obj进行第二次或者以后的save时,多是对持久态的obj进行操作,这时hibernate不会对数据库发出 insert的请求,而是update命令,所以不管你SAVE几次都是看到最后一条。若你想看到SAVE所有数据,你就得从新给HIBERNATE一个游离态对象。比如save(obj1),save(obj2)...
正确实例:
for(int i=0;i<10;i++){
Pay pay=new Pay();
PayDAO paydao=new PayDAO();
pay.setId(i);
pay.setName("第"+i+"个");
}