forked from Archives/Athou_commafeed
cleaner way of deleting relationships
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package com.commafeed.backend.dao;
|
package com.commafeed.backend.dao;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.ejb.Stateless;
|
import javax.ejb.Stateless;
|
||||||
@@ -17,7 +16,6 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
|
|
||||||
import com.commafeed.backend.feeds.FeedUtils;
|
import com.commafeed.backend.feeds.FeedUtils;
|
||||||
import com.commafeed.backend.model.Feed;
|
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.FeedSubscription_;
|
import com.commafeed.backend.model.FeedSubscription_;
|
||||||
import com.commafeed.backend.model.Feed_;
|
import com.commafeed.backend.model.Feed_;
|
||||||
@@ -118,20 +116,7 @@ public class FeedDAO extends GenericDAO<Feed> {
|
|||||||
|
|
||||||
List<Feed> list = q.getResultList();
|
List<Feed> list = q.getResultList();
|
||||||
int deleted = list.size();
|
int deleted = list.size();
|
||||||
for (Feed feed : list) {
|
delete(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);
|
|
||||||
}
|
|
||||||
return deleted;
|
return deleted;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import javax.persistence.Column;
|
|||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.ManyToMany;
|
import javax.persistence.ManyToMany;
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
|
import javax.persistence.PreRemove;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
@@ -33,10 +34,10 @@ public class Feed extends AbstractModel {
|
|||||||
|
|
||||||
@Column(length = 40, nullable = false)
|
@Column(length = 40, nullable = false)
|
||||||
private String urlHash;
|
private String urlHash;
|
||||||
|
|
||||||
@Column(length = 2048, nullable = false)
|
@Column(length = 2048, nullable = false)
|
||||||
private String normalizedUrl;
|
private String normalizedUrl;
|
||||||
|
|
||||||
@Column(length = 40, nullable = false)
|
@Column(length = 40, nullable = false)
|
||||||
private String normalizedUrlHash;
|
private String normalizedUrlHash;
|
||||||
|
|
||||||
@@ -144,6 +145,13 @@ public class Feed extends AbstractModel {
|
|||||||
@Transient
|
@Transient
|
||||||
private boolean urgent;
|
private boolean urgent;
|
||||||
|
|
||||||
|
@PreRemove
|
||||||
|
private void removeEntriesFromFeed() {
|
||||||
|
for (FeedEntry entry : entries) {
|
||||||
|
entry.getFeeds().remove(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Feed() {
|
public Feed() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user