diff --git a/src/main/java/com/commafeed/backend/DatabaseCleaner.java b/src/main/java/com/commafeed/backend/DatabaseCleaner.java index 0f119d7a..55e6bcc7 100644 --- a/src/main/java/com/commafeed/backend/DatabaseCleaner.java +++ b/src/main/java/com/commafeed/backend/DatabaseCleaner.java @@ -79,6 +79,7 @@ public class DatabaseCleaner { sub.setFeed(into); } feedSubscriptionDAO.saveOrUpdate(subs); + feedDAO.deleteRelationships(feed); feedDAO.delete(feed); } feedDAO.saveOrUpdate(into); diff --git a/src/main/java/com/commafeed/backend/dao/FeedDAO.java b/src/main/java/com/commafeed/backend/dao/FeedDAO.java index 58545443..b6c9e046 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedDAO.java @@ -96,6 +96,13 @@ public class FeedDAO extends GenericDAO { return findByField(Feed_.pushTopicHash, DigestUtils.sha1Hex(topic)); } + public void deleteRelationships(Feed feed) { + Query relationshipDeleteQuery = em + .createNamedQuery("Feed.deleteEntryRelationships"); + relationshipDeleteQuery.setParameter("feedId", feed.getId()); + relationshipDeleteQuery.executeUpdate(); + } + public int deleteWithoutSubscriptions(int max) { CriteriaQuery query = builder.createQuery(getType()); Root root = query.from(getType()); @@ -110,10 +117,7 @@ public class FeedDAO extends GenericDAO { int deleted = list.size(); for (Feed feed : list) { - Query relationshipDeleteQuery = em - .createNamedQuery("Feed.deleteEntryRelationships"); - relationshipDeleteQuery.setParameter("feedId", feed.getId()); - relationshipDeleteQuery.executeUpdate(); + deleteRelationships(feed); delete(feed); } return deleted;