在Hibernate中如何以级联向方式同时向三张表中插入数据

sunbird2008 2005-04-04 04:56:03
我现在遇到了一个头痛的问题,我有三张表:actor、user、role.
actor表里有actorID,sername,password字段。
role表里有roleID,rolename字段。
user表里有userID,username,sex,address,mobil等字段。
三张表的关系是role对actor是一对多的关系,同时role对user也是一对多的关系。并且在actor.hbm.xml里分别设置role和user的inverse="true",cascade="save-update"结果是编译运行时显示两条sql语句,insert actor....。insert user.....。并没有显示插入role的sql语句,而且三张表里都没有数据插入。
如果我设置actor.hbm.xml的cascade="none"则只能在actor表里插入数据!郁闷!



向高手求救了!
...全文
433 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkula 2005-04-26
  • 打赏
  • 举报
回复
配置文件里设置:cascade=all
然后就是在SET属性时,将要SAVE的PO关联的属性填充好,再一个个SET进PO,最后SAVE这个PO时就能达到级联插入/更新的效果了
例如一个one-to-many关系的:
因为ONE关联MANY一方的属性是collection,所以在设置时,先填充MANY一方

manyPo.setName(xx);
manyPo.setAge(xx);

list.add(manyPo);

onePo.setAssMany(list);

dao.save(onePo);
public_super_man 2005-04-25
  • 打赏
  • 举报
回复
我写的一个,你看看吧
<set
name="roles"
table="user_role"
lazy="false"
inverse="false"
cascade="save-update"
sort="unsorted"
>

<key
column="username"
>
</key>

<many-to-many
class="com.haoe.model.Role"
column="role_name"
outer-join="auto"
/>

</set>
discolt 2005-04-25
  • 打赏
  • 举报
回复
每个类的cascade=all,有一对多的 inverse不要设为 true 就行了。
sjg008 2005-04-24
  • 打赏
  • 举报
回复
学习
PageYi 2005-04-19
  • 打赏
  • 举报
回复
我上面说错了,不好意思!
我最近亲自试了一下,三张表级联插入是没有问题的;Hibernate的cascade设计是方便级联插入,删除,更新,如果象julian_zzx(竹十一)所说的那样就不用cascade这个设置了。
inverse和cascade是没有必然的联系的;
父类是要设置cascade="all|save-update"的,
外键一定要设置正确,也就是set中key
whobillion 2005-04-14
  • 打赏
  • 举报
回复
同意 julian_zzx(竹十一)
PageYi 2005-04-13
  • 打赏
  • 举报
回复
记错了,应该是这个max_fetch_depth
PageYi 2005-04-13
  • 打赏
  • 举报
回复
在hibernate.properties 文件看看 hibernate.fetch_max_size 是多少,把它改为2试试
vssivl 2005-04-11
  • 打赏
  • 举报
回复
bang up
007remember 2005-04-05
  • 打赏
  • 举报
回复
路过
学习ing
帮您顶
talenty 2005-04-05
  • 打赏
  • 举报
回复
学习。。顶。。
SInoyew 2005-04-05
  • 打赏
  • 举报
回复
学习!
julian_zzx 2005-04-05
  • 打赏
  • 举报
回复
一个role多个user,为了存储合适的关系,要先save的是role;同理role和actor时save的也先是role。当然对many的也要save。
还有session.flush()也别忘了。

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧