cleaner way of deleting relationships

This commit is contained in:
Athou
2013-07-04 21:32:34 +02:00
parent fca15f422f
commit 4c1c9aef6f
2 changed files with 11 additions and 18 deletions

View File

@@ -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;
}

View File

@@ -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() {
}