cascade="all"时插入不了记录 for(int i=0;i<4;i++) { c= new Child(); c.setTname(name); p.getChilds().add(c); c.setParent(p); }这样试试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 c.setParent(p);已经试过了,不行 id加上unsaved-value="0",我想应该就可以了吧。 把inverse="false" 时输出结果====================================Hibernate: insert into Parent (age, firstname, lastname, id) values (?, ?, ?, ?)Hibernate: insert into Child (tNAME, pID, id) values (?, ?, ?)Hibernate: update Child set pID=? where id=?增加unsaved-value="0"或unsaved-value="-1" 时输出结果<id name="id" column="id" type="long" unsaved-value="-1"> 两个地方都加了====================================Hibernate: insert into Parent (age, firstname, lastname, id) values (?, ?, ?, ?)Hibernate: insert into Child (tNAME, pID, id) values (?, ?, ?) 这我就不明白你的意思了,看你贴出来的结果,不是已经达到你的要求了吗?同时插入parent和child。你inverse="false"多出的update是因为你用父和和子做关联,控制方在父,而父不知道又多少个子,所以要更新每个子的那个Pid,这也是为什么inverse="false"影响效率的原因。你上面的结果想告诉我什么呢? Child c ;for(int i=0;i<4;i++) { c= new Child(); c.setTname(name); p.getChilds().add(c);}s.save(p);==============我增加了4条child记录,但为什么只有一条记录添加到数据库? 呵呵,因为你用了inverse="true"啊,这是由子来控制关联关系,所以你应该用s.save(子)才行啦。确切的说要save四个子才行。总之,inverse这个东西的含义你必须要弄清楚才行,而且反转的时候要多写一个c.setParent(p)这个代码,也就是双方都要进行一下维护才行。 把inverse="false" 时输出结果====================================Hibernate: insert into Parent (age, firstname, lastname, id) values (?, ?, ?, ?)Hibernate: insert into Child (tNAME, pID, id) values (?, ?, ?)Hibernate: update Child set pID=? where id=?增加unsaved-value="0"或unsaved-value="-1" 时输出结果<id name="id" column="id" type="long" unsaved-value="-1"> 两个地方都加了====================================Hibernate: insert into Parent (age, firstname, lastname, id) values (?, ?, ?, ?)Hibernate: insert into Child (tNAME, pID, id) values (?, ?, ?) 为什么要用cascade="all"呢?delete不行?然后inverse="true",做一个Child的DAO不行吗?你这样严重影响效率! 关于el 的一个问题,求解 如何立即结束一个线程 我使用tomcat6.0..用不用再结合上apache才能将网站上线使用? 急求,一套业务WEB系统开源客户端UI ibatis 高手请进 急急急!~各位高手留步,文件上传的问题,解决马上结贴!100分~ hibernate update无效... struts标签 关于插入数据时无法捕获异常的问题 是不是有专门讲J2EE本身理念的书呢? 100 请教: 用JAVA 如何实现对 DB2 CLOB 的插入,修改,查询操作? 光华冠群软件公司招聘Java软件开发工程师(工作地点:成都)
已经试过了,不行
====================================
Hibernate: insert into Parent (age, firstname, lastname, id) values (?, ?, ?, ?)
Hibernate: insert into Child (tNAME, pID, id) values (?, ?, ?)
Hibernate: update Child set pID=? where id=?
增加unsaved-value="0"或unsaved-value="-1" 时输出结果
<id name="id" column="id" type="long" unsaved-value="-1"> 两个地方都加了
====================================
Hibernate: insert into Parent (age, firstname, lastname, id) values (?, ?, ?, ?)
Hibernate: insert into Child (tNAME, pID, id) values (?, ?, ?)
for(int i=0;i<4;i++) {
c= new Child();
c.setTname(name);
p.getChilds().add(c);
}
s.save(p);
==============
我增加了4条child记录,但为什么只有一条记录添加到数据库?
总之,inverse这个东西的含义你必须要弄清楚才行,而且反转的时候要多写一个c.setParent(p)这个代码,也就是双方都要进行一下维护才行。
====================================
Hibernate: insert into Parent (age, firstname, lastname, id) values (?, ?, ?, ?)
Hibernate: insert into Child (tNAME, pID, id) values (?, ?, ?)
Hibernate: update Child set pID=? where id=?
增加unsaved-value="0"或unsaved-value="-1" 时输出结果
<id name="id" column="id" type="long" unsaved-value="-1"> 两个地方都加了
====================================
Hibernate: insert into Parent (age, firstname, lastname, id) values (?, ?, ?, ?)
Hibernate: insert into Child (tNAME, pID, id) values (?, ?, ?)
delete不行?
然后inverse="true",做一个Child的DAO不行吗?
你这样严重影响效率!