subquery for retrieving feeds to refresh was not connected to main query

This commit is contained in:
Athou
2021-01-30 21:28:37 +01:00
parent caba43bb5b
commit 015a60f998
2 changed files with 7 additions and 4 deletions

View File

@@ -21,7 +21,7 @@ import com.querydsl.jpa.JPQLQuery;
@Singleton
public class FeedDAO extends GenericDAO<Feed> {
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<Feed> {
QFeedSubscription subs = QFeedSubscription.feedSubscription;
QUser user = QUser.user;
JPQLQuery<Integer> 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();

View File

@@ -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<FeedSubscription> subscriptions;
}