forked from Archives/Athou_commafeed
smarter join
This commit is contained in:
@@ -45,13 +45,13 @@ public class FeedDAO extends GenericDAO<Feed> {
|
|||||||
disabledDatePredicate.or(feed.disabledUntil.isNull());
|
disabledDatePredicate.or(feed.disabledUntil.isNull());
|
||||||
disabledDatePredicate.or(feed.disabledUntil.lt(new Date()));
|
disabledDatePredicate.or(feed.disabledUntil.lt(new Date()));
|
||||||
|
|
||||||
HibernateQuery query = newQuery().from(feed).where(disabledDatePredicate);
|
HibernateQuery query = newQuery().from(feed);
|
||||||
if (lastLoginThreshold != null) {
|
if (lastLoginThreshold != null) {
|
||||||
QFeedSubscription sub = QFeedSubscription.feedSubscription;
|
QFeedSubscription subs = QFeedSubscription.feedSubscription;
|
||||||
QUser user = QUser.user;
|
QUser user = QUser.user;
|
||||||
HibernateSubQuery subquery = new HibernateSubQuery();
|
query.join(feed.subscriptions, subs).join(subs.user, user).where(disabledDatePredicate, user.lastLogin.gt(lastLoginThreshold));
|
||||||
subquery.from(sub).join(sub.user, user).where(sub.feed.eq(feed), user.lastLogin.gt(lastLoginThreshold));
|
} else {
|
||||||
query.where(subquery.exists());
|
query.where(disabledDatePredicate);
|
||||||
}
|
}
|
||||||
|
|
||||||
return query.orderBy(feed.disabledUntil.asc()).limit(count).list(feed);
|
return query.orderBy(feed.disabledUntil.asc()).limit(count).list(feed);
|
||||||
|
|||||||
Reference in New Issue
Block a user