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;
}
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;
}
相关文章推荐
- hibernate 双向一多对关联 删除一端时级联删除多端
- Hibernate 级联删除
- 关于hibernate删除对象不级联的问题
- hibernate 双向一多对关联 删除一端时级联删除多端
- Hibernate 级联删除异常 deleted object would be re-saved by cascade
- 关于hibernate的级联删除
- 再谈Hibernate级联删除——JPA下的Hibernate实现一对多级联删除CascadeType.DELETE_ORPHAN
- hibernate多对多级联保存、级联删除
- Hibernate如果进行一对多级联删除
- Hibernate 一对多级联更新(更新,删除多方数据)的错误解决
- hibernate中关于级联删除的问题
- 处理hibernate多重级联关系下的删除解决方法
- hibernate级联保存更新、删除
- hibernate 级联删除报更新失败的问题
- Hibernate中单向一对多删除级联数据问题
- Hibernate 一对多级联删除
- hibernate框架一对多级联删除例子(十三)
- hibernate 级联修改删除
- hibernate注解 级联删除
- hibernate 某个对象自身多对多 级联删除