diff --git a/src/main/java/com/commafeed/backend/DatabaseCleaner.java b/src/main/java/com/commafeed/backend/DatabaseCleaner.java index b3b2811e..655e8007 100644 --- a/src/main/java/com/commafeed/backend/DatabaseCleaner.java +++ b/src/main/java/com/commafeed/backend/DatabaseCleaner.java @@ -1,16 +1,12 @@ package com.commafeed.backend; import java.util.Calendar; -import java.util.List; import java.util.concurrent.TimeUnit; -import javax.ejb.Stateless; import javax.inject.Inject; import com.commafeed.backend.dao.FeedEntryDAO; -import com.commafeed.backend.model.FeedEntry; -@Stateless public class DatabaseCleaner { @Inject @@ -22,15 +18,7 @@ public class DatabaseCleaner { int deleted = -1; do { - List entries = feedEntryDAO.findByInserted( - cal.getTime(), 100); - deleted = entries.size(); - - for (FeedEntry entry : entries) { - feedEntryDAO.delete(entry.getStatuses()); - } - feedEntryDAO.delete(entries); - + deleted = feedEntryDAO.delete(cal.getTime(), 1000); } while (deleted != 0); } diff --git a/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java b/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java index 239029cf..22052ace 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java @@ -56,14 +56,18 @@ public class FeedEntryDAO extends GenericDAO { return list; } - public List findByInserted(Date olderThan, int max) { + public int delete(Date olderThan, int max) { CriteriaQuery query = builder.createQuery(getType()); Root root = query.from(getType()); - query.where(builder.lessThan(root.get(FeedEntry_.inserted), olderThan)); + TypedQuery q = em.createQuery(query); q.setMaxResults(max); - return q.getResultList(); + + List list = q.getResultList(); + int deleted = list.size(); + em.remove(list); + return deleted; } public List findByFeed(Feed feed, int offset, int limit) { diff --git a/src/main/java/com/commafeed/backend/model/FeedEntry.java b/src/main/java/com/commafeed/backend/model/FeedEntry.java index 7631840a..a769f511 100644 --- a/src/main/java/com/commafeed/backend/model/FeedEntry.java +++ b/src/main/java/com/commafeed/backend/model/FeedEntry.java @@ -49,7 +49,7 @@ public class FeedEntry extends AbstractModel { @Temporal(TemporalType.TIMESTAMP) private Date updated; - @OneToMany(mappedBy = "entry") + @OneToMany(mappedBy = "entry", cascade = CascadeType.REMOVE) private Set statuses; public String getGuid() {