From 982cf044ef3cbfb48c8a1e33ff2c01b712aeda96 Mon Sep 17 00:00:00 2001 From: Athou Date: Tue, 12 Aug 2014 16:32:03 +0200 Subject: [PATCH] smarter join --- src/main/java/com/commafeed/backend/dao/FeedDAO.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/commafeed/backend/dao/FeedDAO.java b/src/main/java/com/commafeed/backend/dao/FeedDAO.java index 1afe2b27..e910360e 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedDAO.java @@ -45,13 +45,13 @@ public class FeedDAO extends GenericDAO { disabledDatePredicate.or(feed.disabledUntil.isNull()); disabledDatePredicate.or(feed.disabledUntil.lt(new Date())); - HibernateQuery query = newQuery().from(feed).where(disabledDatePredicate); + HibernateQuery query = newQuery().from(feed); if (lastLoginThreshold != null) { - QFeedSubscription sub = QFeedSubscription.feedSubscription; + QFeedSubscription subs = QFeedSubscription.feedSubscription; QUser user = QUser.user; - HibernateSubQuery subquery = new HibernateSubQuery(); - subquery.from(sub).join(sub.user, user).where(sub.feed.eq(feed), user.lastLogin.gt(lastLoginThreshold)); - query.where(subquery.exists()); + query.join(feed.subscriptions, subs).join(subs.user, user).where(disabledDatePredicate, user.lastLogin.gt(lastLoginThreshold)); + } else { + query.where(disabledDatePredicate); } return query.orderBy(feed.disabledUntil.asc()).limit(count).list(feed);