hibernate save方法但是第二次save变成更新数据了
biz类:yhgwdz.setYhid(Integer.toString(yhid));for(inti=0;i<gwids.length;i++){yhgwdz.set...
biz类:
yhgwdz.setYhid(Integer.toString(yhid));
for (int i = 0; i < gwids.length; i++) {
yhgwdz.setGwid(gwids[i]);
this.yhgwdzdao.addYhgwdz(yhgwdz);
}
DAO类:
public void addYhgwdz(Yhgwdz yhgwdz) {
// TODO Auto-generated method stub
this.getHibernateTemplate().save(yhgwdz);
}
这样循环加入2条数据后,第二条数据就把第一条覆盖了(下面的sql语句看出对同一个表执行了insert与update操作)
insert into TELEUSER.用户岗位对照表 (用户ID, 岗位ID, 部门ID, 加入时间, 批准人ID, 操作者ID, 编号ID) values (?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into GISTAR.YH_AREAINFO (YHID, AREAID, YAID) values (?, ?, ?)
Hibernate: insert into GISTAR.USER_INFORMATION (NAME, PASSWORD, IDENTITY, CREATEDATE, CREATENAME, REMARK, LOGINDATE, USERID) values (?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into GISTAR.U_UG (USERID, UGID, BHID) values (?, ?, ?)
Hibernate: update TELEUSER.用户岗位对照表 set 用户ID=?, 岗位ID=?, 部门ID=?, 加入时间=?, 批准人ID=?, 操作者ID=? where 编号ID=?
Hibernate: update GISTAR.U_UG set USERID=?, UGID=? where BHID=? 展开
yhgwdz.setYhid(Integer.toString(yhid));
for (int i = 0; i < gwids.length; i++) {
yhgwdz.setGwid(gwids[i]);
this.yhgwdzdao.addYhgwdz(yhgwdz);
}
DAO类:
public void addYhgwdz(Yhgwdz yhgwdz) {
// TODO Auto-generated method stub
this.getHibernateTemplate().save(yhgwdz);
}
这样循环加入2条数据后,第二条数据就把第一条覆盖了(下面的sql语句看出对同一个表执行了insert与update操作)
insert into TELEUSER.用户岗位对照表 (用户ID, 岗位ID, 部门ID, 加入时间, 批准人ID, 操作者ID, 编号ID) values (?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into GISTAR.YH_AREAINFO (YHID, AREAID, YAID) values (?, ?, ?)
Hibernate: insert into GISTAR.USER_INFORMATION (NAME, PASSWORD, IDENTITY, CREATEDATE, CREATENAME, REMARK, LOGINDATE, USERID) values (?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into GISTAR.U_UG (USERID, UGID, BHID) values (?, ?, ?)
Hibernate: update TELEUSER.用户岗位对照表 set 用户ID=?, 岗位ID=?, 部门ID=?, 加入时间=?, 批准人ID=?, 操作者ID=? where 编号ID=?
Hibernate: update GISTAR.U_UG set USERID=?, UGID=? where BHID=? 展开
展开全部
hibernate的save方法:当主键一样的时候,第二次调用save方法就是执行更新操作的了。 、
就是这里:yhgwdz.setYhid(Integer.toString(yhid));
就是这里:yhgwdz.setYhid(Integer.toString(yhid));
追问
可是我设置的主键不是YHID啊,是BHID.。前几天好像还能用呢,不知道该什么了
追答
for (int i = 0; i < gwids.length; i++) {
//试下把new写在这
yhgwdz.setYhid(Integer.toString(yhid));
yhgwdz.setGwid(gwids[i]);
this.yhgwdzdao.addYhgwdz(yhgwdz);
}
展开全部
你有一个unquie的值设成一样了。
看下表结构的列属性。
看下表结构的列属性。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要知道save()是保存,commit()是提交。
session.save(pojo对象);
Transaction tx = session.beginTransaction();
tx.commit();
session.save(pojo对象);
Transaction tx = session.beginTransaction();
tx.commit();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,问下,我也出现了这样的状况,我的两个表是一对多的关系,求助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询