可以这样
parent.setName("");
Iterator childs = parent.getChilds().iterator;
while(childs.hasNext()){
Child child = (Child)it.next();
child.setId();//记得set这个,要不不是级联更新
child.setName("");
set.add(child);
}
然后再parent.setChild(set);
如果你配置文件里的级联更新是开启的话,这样应该就可以了.如果还不行,笨点的方法就是拆开了一个一个更新也行 .
有两中解决方案
第一:如风中de三叶草的回答 你在
inverse 默认的是false 如果你把inverse="false"
session.save(customer);就能保存
第二种:
order order=new order();
order.setordername("订单");
customer customer=new customer();
customer.setcustomername("客户名称");
order.setcustomer(customer);//把客户的关系赋给订单
customer.getorders().add(order);
session.save(customer);
这样也是可行的
不知道我这样回答你有没有明白
另外现在hibenrate3.5的版本支持注解配置(jpa)
这样就不用写那些.xml的配置了,用起来很简单的
建议你去看一下
//我不太明白你什么意思,感觉你写的好像没什么问题
//比如在一个update方法中,不仅要更新parent表中的数据,还要更新他的子表child
parent.setName("");
Iterator childs = parent.getChilds().iterator;
while(childs.hasNext()){
Child child = (Child)it.next();
child.setName("");
}
//然后在后面直接
session.update(parent);
session.commit();
//这样就实现了一起更新字表了
//在我印象里是没必要parent.setChild();