Hibernate级联保存,多方外键不能自动保存

好吃的松子 2008-12-12 03:50:39
Hibernate实现一对多的级联保存,其中“一方”配置如下:
<set name="articleItems" inverse="false" cascade="save-update" >
<key>
<column name="USERSKY" length="32" />
</key>
<one-to-many class="ArticleVO" />
</set>
“多方”配置如下:
<many-to-one name="user"
class="UsersVO" cascade="none" >
<column name="USERSFK" length="32" not-null="true" />
</many-to-one>

但测试时:

UsersVO user = new UsersVO();
user.setUsername("tester");

ArticleVO article = new ArticleVO();
article.setTitle("标题");

user.getArticleItems().add(article);
service.save(user);

结果在数据库中article表的USERSFK字段始终是空的,而且debug时,保存user后,articleItems中的ArticleVO中的user也是null


不知道是哪里弄错了,麻烦高人解答,谢谢!!!
...全文
454 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
好吃的松子 2008-12-15
  • 打赏
  • 举报
回复
知道怎么解决了

要在save之前,先artcle.setUser(user);也就是显示指定归属的user。

不过,个人觉得Hibernate这样做还不够智能,用谁保存,就自动归属哪个不就完了。
wangji131 2008-12-12
  • 打赏
  • 举报
回复
事务提交试一试啊,把你的po看下
myjava_024 2008-12-12
  • 打赏
  • 举报
回复
http://lavasoft.blog.51cto.com/62575/39398
这有篇很好的文章,楼主不妨读读,答案自在其中啊
好吃的松子 2008-12-12
  • 打赏
  • 举报
回复
哦,这里写错了,不过为false也没关系,只是性能不好布局。
hxkinggil 2008-12-12
  • 打赏
  • 举报
回复
把inverse设成true。。一般是多方为主控方
好吃的松子 2008-12-12
  • 打赏
  • 举报
回复
在线聊着说好吗?

如果事务出问题,那应该user也保存不了,article的其他字段也保存不了呀。
tzb08 2008-12-12
  • 打赏
  • 举报
回复
估计又是事务没起作用哈,
暂时不管spring提供的事务,你显式添加事务save看看
好吃的松子 2008-12-12
  • 打赏
  • 举报
回复
用的getHibernateTemplate().save(vo)方法
tzb08 2008-12-12
  • 打赏
  • 举报
回复
提交事务了嘛?保存后关闭session了嘛?

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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