分类: 程序夜未眠 |
用hibernate来开发程序,调用session.save()方法存储数据的时候,必须要setId,也就是要给主键赋值。网上说这个值不起作用,真正插入的时候是根据数据库来决定这个值的,但是我运行却发现不是,我的程序如下:
SongRecommend sr = new SongRecommend();
Transaction tx = session.beginTransaction();
sr.setId(new Integer(9000));
sr.setSong(songMon.getSong());
session.save(sr);
tx.commit();
if (tx!=null) {
tx.rollback();
}
session.close();
这样只能插入一条,再运新就报错,说值重复。
搞了一下午也没有搞定,后来发现,把hbm.xml中id的 generator 中class的属性值设为increment就ok了。这么点小问题浪费了一个下午的时间,希望遇到同样的问题的朋友能从我这里有所收获!:)
SongRecommend sr = new SongRecommend();
Transaction tx = session.beginTransaction();
sr.setId(new Integer(9000));
sr.setSong(songMon.getSong());
session.save(sr);
tx.commit();
if (tx!=null) {
}
session.close();
这样只能插入一条,再运新就报错,说值重复。
搞了一下午也没有搞定,后来发现,把hbm.xml中id的 generator 中class的属性值设为increment就ok了。这么点小问题浪费了一个下午的时间,希望遇到同样的问题的朋友能从我这里有所收获!:)
前一篇:5月27日拓展之旅一
后一篇:痛。。。