diff --git a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedDAO.java b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedDAO.java index cdaa690e..ac1349b4 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedDAO.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedDAO.java @@ -24,6 +24,10 @@ public class FeedDAO extends GenericDAO { super(entityManager, Feed.class); } + public List findByIds(List id) { + return query().selectFrom(FEED).where(FEED.id.in(id)).fetch(); + } + public List findNextUpdatable(int count, Instant lastLoginThreshold) { JPAQuery query = query().selectFrom(FEED).where(FEED.disabledUntil.isNull().or(FEED.disabledUntil.lt(Instant.now()))); if (lastLoginThreshold != null) { diff --git a/commafeed-server/src/main/java/com/commafeed/backend/service/db/DatabaseCleaningService.java b/commafeed-server/src/main/java/com/commafeed/backend/service/db/DatabaseCleaningService.java index d64bb25b..310f6926 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/service/db/DatabaseCleaningService.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/service/db/DatabaseCleaningService.java @@ -12,6 +12,7 @@ import com.commafeed.backend.dao.FeedEntryDAO; import com.commafeed.backend.dao.FeedEntryDAO.FeedCapacity; import com.commafeed.backend.dao.FeedEntryStatusDAO; import com.commafeed.backend.dao.UnitOfWork; +import com.commafeed.backend.model.AbstractModel; import com.commafeed.backend.model.Feed; import jakarta.inject.Singleton; @@ -61,7 +62,7 @@ public class DatabaseCleaningService { log.info("removed {} entries for feeds without subscriptions", entriesTotal); } while (entriesDeleted > 0); } - deleted = unitOfWork.call(() -> feedDAO.delete(feeds)); + deleted = unitOfWork.call(() -> feedDAO.delete(feedDAO.findByIds(feeds.stream().map(AbstractModel::getId).toList()))); total += deleted; log.info("removed {} feeds without subscriptions", total); } while (deleted != 0);