hibernate 一对多"单向关联" 级联保存

我有一个Question类Answer类在保存的时候Question和Answer在同一个页面,提交的时候Question和Answer用hibernate级联保存,<一... 我有一个Question类Answer类 在保存的时候Question和Answer在同一个页面,提交的时候Question和Answer用hibernate级联保存,<一个问题多个答案,一对多>
在Question类中有Set<Answer> answers 的get(), set(),hibernate 配置文件中Question.hmb.xml中有一个<one-to-many>,Answer.hbm.xml中什么都没有,就有一个普通的questionID的属性,我的问题的是在保存的时候报Answer中的questionID为空的异常,希望能得到的解决方案为:按我的思路解决问题,其实hibernate是要我先保存问题之后再为答案设置Answer中的questionID再保存答案,我的意思是可不可以不设置Answer中的questionID,我没有分,就20,都给了.哪位不在乎分的大哥帮帮忙.解决下.谢谢
展开
 我来答
灰若星辰D0
2010-11-26 · TA获得超过474个赞
知道答主
回答量:64
采纳率:0%
帮助的人:98.2万
展开全部
给你一个例子吧: 多个user对应一个zlass
Set set=new HashSet();
Zlass zlas=new Zlass();
User user=new User();
user.setPassword("ddd");
user.setUsername("hello");
set.add(user);
zlas.setClassname("3 grade");

zlas.setUsers(set);
//添加一个新的set,set中是user对象。 这就话很重要,就是使它们两个建立关系,这样在user表中的id就不为空了
userdao.save(zlas);

其中的Zlass.hbm.xml文件:
<set name="users" cascade="save-update" lazy="false">
<key column="classid"/>
<one-to-many class="cn.itcast.pojo.User" />
</set>
其中的配置文件你要是写inverse="true"也会导致user表中id为空,默认是false,估计你可能就是这两点的问题
希望对你有帮助!
lucy_wangli
2010-11-26 · TA获得超过116个赞
知道答主
回答量:85
采纳率:0%
帮助的人:0
展开全部
首先问一下的表是怎么设计的,如果只有一个表,很显然你进行的保存操作就是修改了表记录,id为空能行么?
如果是有两个表,即Question和Answer,他们是通过主外键关系关联的,你修改了Answer表进行修改时每一个属性都要修改的,包括它关联的QuestionId,你不赋值它就为空,当然错了,可以在页面中添加隐藏域,把QuestinId的原值放里面就好了,还有注意表单元素的命名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式