From 5b77860189023a0e2e826f1571dd2e00ec7e79be Mon Sep 17 00:00:00 2001 From: Athou Date: Fri, 16 Aug 2024 15:45:17 +0200 Subject: [PATCH] use join to speed up cleanup --- .../commafeed/backend/dao/FeedEntryContentDAO.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryContentDAO.java b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryContentDAO.java index 0b742e64..7e4f180e 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryContentDAO.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryContentDAO.java @@ -5,8 +5,6 @@ import java.util.List; import com.commafeed.backend.model.FeedEntryContent; import com.commafeed.backend.model.QFeedEntry; import com.commafeed.backend.model.QFeedEntryContent; -import com.querydsl.jpa.JPAExpressions; -import com.querydsl.jpa.JPQLSubQuery; import jakarta.inject.Singleton; import jakarta.persistence.EntityManager; @@ -26,9 +24,13 @@ public class FeedEntryContentDAO extends GenericDAO { } public long deleteWithoutEntries(int max) { - JPQLSubQuery subQuery = JPAExpressions.selectOne().from(ENTRY).where(ENTRY.content.id.eq(CONTENT.id)); - List ids = query().select(CONTENT.id).from(CONTENT).where(subQuery.notExists()).limit(max).fetch(); - + List ids = query().select(CONTENT.id) + .from(CONTENT) + .leftJoin(ENTRY) + .on(ENTRY.content.id.eq(CONTENT.id)) + .where(ENTRY.id.isNull()) + .limit(max) + .fetch(); return deleteQuery(CONTENT).where(CONTENT.id.in(ids)).execute(); } }