mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
rewrite query using not exists
This commit is contained in:
@@ -11,6 +11,7 @@ import com.commafeed.backend.model.FeedEntryContent;
|
|||||||
import com.commafeed.backend.model.QFeedEntry;
|
import com.commafeed.backend.model.QFeedEntry;
|
||||||
import com.commafeed.backend.model.QFeedEntryContent;
|
import com.commafeed.backend.model.QFeedEntryContent;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
|
import com.mysema.query.jpa.hibernate.HibernateSubQuery;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class FeedEntryContentDAO extends GenericDAO<FeedEntryContent> {
|
public class FeedEntryContentDAO extends GenericDAO<FeedEntryContent> {
|
||||||
@@ -30,8 +31,10 @@ public class FeedEntryContentDAO extends GenericDAO<FeedEntryContent> {
|
|||||||
|
|
||||||
public int deleteWithoutEntries(int max) {
|
public int deleteWithoutEntries(int max) {
|
||||||
QFeedEntry entry = QFeedEntry.feedEntry;
|
QFeedEntry entry = QFeedEntry.feedEntry;
|
||||||
List<FeedEntryContent> list = newQuery().from(content).leftJoin(content.entries, entry).where(entry.id.isNull()).limit(max)
|
|
||||||
.list(content);
|
HibernateSubQuery subQuery = new HibernateSubQuery().from(entry).where(entry.content.id.eq(content.id));
|
||||||
|
List<FeedEntryContent> list = newQuery().from(content).where(subQuery.notExists()).limit(max).list(content);
|
||||||
|
|
||||||
int deleted = list.size();
|
int deleted = list.size();
|
||||||
delete(list);
|
delete(list);
|
||||||
return deleted;
|
return deleted;
|
||||||
|
|||||||
Reference in New Issue
Block a user