mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
cleaner way of deleting relationships
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package com.commafeed.backend.dao;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Stateless;
|
||||
@@ -17,7 +16,6 @@ import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import com.commafeed.backend.feeds.FeedUtils;
|
||||
import com.commafeed.backend.model.Feed;
|
||||
import com.commafeed.backend.model.FeedEntry;
|
||||
import com.commafeed.backend.model.FeedSubscription;
|
||||
import com.commafeed.backend.model.FeedSubscription_;
|
||||
import com.commafeed.backend.model.Feed_;
|
||||
@@ -118,20 +116,7 @@ public class FeedDAO extends GenericDAO<Feed> {
|
||||
|
||||
List<Feed> list = q.getResultList();
|
||||
int deleted = list.size();
|
||||
for (Feed feed : list) {
|
||||
for (FeedEntry entry : feed.getEntries()) {
|
||||
Iterator<Feed> it = entry.getFeeds().iterator();
|
||||
while (it.hasNext()) {
|
||||
Feed f = it.next();
|
||||
if (f.getId().equals(feed.getId())) {
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
em.merge(entry);
|
||||
}
|
||||
feed.getEntries().clear();
|
||||
delete(feed);
|
||||
}
|
||||
delete(list);
|
||||
return deleted;
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.ManyToMany;
|
||||
import javax.persistence.OneToMany;
|
||||
import javax.persistence.PreRemove;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.Temporal;
|
||||
import javax.persistence.TemporalType;
|
||||
@@ -33,10 +34,10 @@ public class Feed extends AbstractModel {
|
||||
|
||||
@Column(length = 40, nullable = false)
|
||||
private String urlHash;
|
||||
|
||||
|
||||
@Column(length = 2048, nullable = false)
|
||||
private String normalizedUrl;
|
||||
|
||||
|
||||
@Column(length = 40, nullable = false)
|
||||
private String normalizedUrlHash;
|
||||
|
||||
@@ -144,6 +145,13 @@ public class Feed extends AbstractModel {
|
||||
@Transient
|
||||
private boolean urgent;
|
||||
|
||||
@PreRemove
|
||||
private void removeEntriesFromFeed() {
|
||||
for (FeedEntry entry : entries) {
|
||||
entry.getFeeds().remove(this);
|
||||
}
|
||||
}
|
||||
|
||||
public Feed() {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user