请教一个hibernate的保存一对多实例的问题。

假如我在数据库有class和student两个表,他们是一对多的关系,设置了外键,映射等该设置的都OK了。我现在创了两个student实例S1 S2里面都有数据,然后添加到class的实例C1里面,最后,我调用classDAO的保存C1,提交。最后我打开后台数据库查看,class表里面确实保存信息了,但是student表里面还是空的。我想问下是不是保存C1的时候,还要再写一句话保存S1和S2,这样两个表里面才都有数据。如果是这样的话,为什么我看到的很多书上的例子,都是只保存了C1,然后S1和S2貌似也都自动保存了。请教下hibernate会自动保存一对多的这种实例吗?

3个回答

简单的例子就是部门与员工的一对多关系
在部门映射文件中设置:
<!-- cascade为级联设置,inverse为是否放弃维护关联 -->



这样设置表示当你保存或更新部门信息时会自动保存或更新相关的员工信息

你在class的映射文件中设置级联保存就可以了,当你保存class时,就会自动保存相关联的Student数据

首先很肯定的是会,其次要理解是面向对象的操作。
如果在保存一得方时,把多的也保存了,首先必须配置关系,在class里配置级联属性,配置cascade值为save-update,然后在实例student时,也需要把class的实例set进student的实例里,然后做save class实例试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!