diff --git a/src/main/java/com/commafeed/backend/dao/FeedDAO.java b/src/main/java/com/commafeed/backend/dao/FeedDAO.java index a1a2a266..40eecafb 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedDAO.java @@ -21,7 +21,7 @@ import com.querydsl.jpa.JPQLQuery; @Singleton public class FeedDAO extends GenericDAO { - private QFeed feed = QFeed.feed; + private final QFeed feed = QFeed.feed; @Inject public FeedDAO(SessionFactory sessionFactory) { @@ -36,9 +36,7 @@ public class FeedDAO extends GenericDAO { QFeedSubscription subs = QFeedSubscription.feedSubscription; QUser user = QUser.user; - JPQLQuery subQuery = JPAExpressions.selectOne().from(subs); - subQuery.join(subs.user, user).where(user.lastLogin.gt(lastLoginThreshold)); - query.where(subQuery.exists()); + query.join(feed.subscriptions, subs).join(subs.user, user).where(user.lastLogin.gt(lastLoginThreshold)); } return query.orderBy(feed.disabledUntil.asc()).limit(count).distinct().fetch(); diff --git a/src/main/java/com/commafeed/backend/model/Feed.java b/src/main/java/com/commafeed/backend/model/Feed.java index 9ac4e736..5229f3a5 100644 --- a/src/main/java/com/commafeed/backend/model/Feed.java +++ b/src/main/java/com/commafeed/backend/model/Feed.java @@ -1,9 +1,11 @@ package com.commafeed.backend.model; import java.util.Date; +import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @@ -121,4 +123,7 @@ public class Feed extends AbstractModel { @Temporal(TemporalType.TIMESTAMP) private Date pushLastPing; + @OneToMany(mappedBy = "feed") + private Set subscriptions; + }