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,都给了.哪位不在乎分的大哥帮帮忙.解决下.谢谢 展开
在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,都给了.哪位不在乎分的大哥帮帮忙.解决下.谢谢 展开
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,估计你可能就是这两点的问题
希望对你有帮助!
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,估计你可能就是这两点的问题
希望对你有帮助!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询