您的位置:首页 > 其它

hibernate 多对一级联删除;

2013-09-05 15:14 281 查看
// 删除元素

    public String deleteAdvertisement() {

        DetachedCriteria dc = DetachedCriteria.forClass(Advertisement.class);

        if (this.id > 0) {

            try {

                this.advertisement = (Advertisement) this.advertisementService

                        .findById(this.id);

                System.out.println("删除查询条目关联关系");

                for (Article article : this.advertisement.getArticles()) {

                    article.setAdvertisement(null);

                    this.articleService.update(article);

                }

                System.out.println("删除播放列表关联关系");

                for (PlaylistAdvertisement pa : this.advertisement

                        .getPlaylistAdvertisements()) {

                    Playlist pl = pa.getPlaylist();

                    pl.getPlaylistAdvertisements().remove(pa);

                    // this.playlistService.update(pa.getPlaylist());

                    // pa.setPlaylist(null);

                    // pa.setAdvertisement(null);

                    this.playlistService.update(pl);

                    this.playlistAdvertisementService

                            .deleteByParam(new Integer[] { pa.getId() });

                }

            } catch (Exception e1) {

                // TODO Auto-generated catch block

                e1.printStackTrace();

            }

            // this.advertisement.setId(this.id);

            try {

                this.advertisementService

                        .deleteByParam(new Integer[] { this.id });

            } catch (Exception e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

        } else {

            if (this.ids != null && !this.ids.equals("")) {

                String idArr[] = this.ids.split(",");

                for (String idStr : idArr) {

                    try {

                        this.advertisement = (Advertisement) this.advertisementService

                                .findById(Integer.parseInt(idStr));

                        System.out.println("删除查询条目关联关系");

                        for (Article article : this.advertisement.getArticles()) {

                            article.setAdvertisement(null);

                            this.articleService.update(article);

                        }

                        System.out.println("删除播放列表关联关系");

                        for (PlaylistAdvertisement pa : this.advertisement

                                .getPlaylistAdvertisements()) {

                            Playlist pl = pa.getPlaylist();

                            pl.getPlaylistAdvertisements().remove(pa);

                            // this.playlistService.update(pa.getPlaylist());

                            // pa.setPlaylist(null);

                            // pa.setAdvertisement(null);

                            this.playlistService.update(pl);

                            this.playlistAdvertisementService

                                    .deleteByParam(new Integer[] { pa.getId() });

                        }

                        this.advertisementService

                                .deleteByParam(new Integer[] { Integer

                                        .parseInt(idStr) });

                    } catch (Exception e) {

                        // TODO Auto-generated catch block

                        e.printStackTrace();

                    }

                }

            }

        }

        return SUCCESS;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: