forked from Archives/Athou_commafeed
faster feed cleanup
This commit is contained in:
@@ -33,7 +33,7 @@ public class DatabaseCleaner {
|
||||
long total = 0;
|
||||
int deleted = -1;
|
||||
do {
|
||||
deleted = feedDAO.deleteWithoutSubscriptions(1);
|
||||
deleted = feedDAO.deleteWithoutSubscriptions(10);
|
||||
total += deleted;
|
||||
log.info("removed {} feeds without subscriptions", total);
|
||||
} while (deleted != 0);
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Stateless;
|
||||
import javax.persistence.Query;
|
||||
import javax.persistence.TypedQuery;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.JoinType;
|
||||
@@ -107,7 +108,14 @@ public class FeedDAO extends GenericDAO<Feed> {
|
||||
|
||||
List<Feed> list = q.getResultList();
|
||||
int deleted = list.size();
|
||||
delete(list);
|
||||
|
||||
for (Feed feed : list) {
|
||||
Query relationshipDeleteQuery = em
|
||||
.createNamedQuery("Feed.deleteEntryRelationships");
|
||||
relationshipDeleteQuery.setParameter("feedId", feed.getId());
|
||||
relationshipDeleteQuery.executeUpdate();
|
||||
delete(feed);
|
||||
}
|
||||
return deleted;
|
||||
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import java.util.Date;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.persistence.Cacheable;
|
||||
import javax.persistence.CascadeType;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.OneToMany;
|
||||
@@ -108,7 +107,7 @@ public class Feed extends AbstractModel {
|
||||
@Column(length = 40)
|
||||
private String lastContentHash;
|
||||
|
||||
@OneToMany(mappedBy = "feed", cascade = CascadeType.REMOVE)
|
||||
@OneToMany(mappedBy = "feed")
|
||||
private Set<FeedFeedEntry> entryRelationships;
|
||||
|
||||
@OneToMany(mappedBy = "feed")
|
||||
|
||||
Reference in New Issue
Block a user