首页 > 其他 > 详细

deleted object would be re-saved by cascade

时间:2014-02-13 15:13:27      阅读:405      评论:0      收藏:0      [点我收藏+]

使用三大框架做project时遇到这个问题:

bubuko.com,布布扣

这是使用的三张表User    Topic       Reply

User对 Topic是一对多。

User对Reply是一对多。

Topic对Reply是一对多。


工程中我的目的是根据id删除topic(主题),结果就报了题目中所写的关于hibernate的错误。


解决的办法如下:

//根据id删除Topic(重点是:解除一切与所要删除对象的联系以及注意它对别的实体的影响)
    public void deleteTopicById(Long id) {
        Session session = factory.getCurrentSession();
        Topic topic=(Topic) session.get(Topic.class,id);
        //获取topic所属的User
        User user=(User) session.get(User.class, topic.getUser().getId());
        //将topic从自己所属的user中移除
        user.getTopics().remove(topic);
        //解除user和因为删除topic失去联系的reply关系
        user.getReplys().removeAll(topic.getReplys());
        //解除topic和reply的关系
        /*topic.getReplys().removeAll(topic.getReplys());*/  //这句不写也可,可能因为它是最底层被级联的对象的原因
        
        session.delete(topic);
        
    }


deleted object would be re-saved by cascade

原文:http://blog.csdn.net/xingshen100/article/details/19133129

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!