From 4ec2cc51ca46282cf59f232d77a32bb8f497eb20 Mon Sep 17 00:00:00 2001 From: Athou Date: Thu, 16 May 2013 17:01:10 +0200 Subject: [PATCH] rollback inner join changes, left joins actually enforce order --- .../backend/dao/FeedEntryStatusDAO.java | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java b/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java index 03bf09c6..f50cc3b2 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java @@ -10,6 +10,7 @@ import javax.persistence.Query; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Join; +import javax.persistence.criteria.JoinType; import javax.persistence.criteria.Path; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; @@ -67,13 +68,13 @@ public class FeedEntryStatusDAO extends GenericDAO { List predicates = Lists.newArrayList(); Join entryJoin = (Join) root - .fetch(FeedEntryStatus_.entry); + .fetch(FeedEntryStatus_.entry, JoinType.LEFT); Join subJoin = (Join) root - .fetch(FeedEntryStatus_.subscription); - subJoin.fetch(FeedSubscription_.feed); + .fetch(FeedEntryStatus_.subscription, JoinType.LEFT); + subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT); Join contentJoin = (Join) entryJoin - .fetch(FeedEntry_.content); + .fetch(FeedEntry_.content, JoinType.LEFT); predicates .add(builder.equal(subJoin.get(FeedSubscription_.user), user)); @@ -105,18 +106,18 @@ public class FeedEntryStatusDAO extends GenericDAO { List predicates = Lists.newArrayList(); Join entryJoin = (Join) root - .fetch(FeedEntryStatus_.entry); + .fetch(FeedEntryStatus_.entry, JoinType.LEFT); Join subJoin = (Join) root - .fetch(FeedEntryStatus_.subscription); - subJoin.fetch(FeedSubscription_.feed); + .fetch(FeedEntryStatus_.subscription, JoinType.LEFT); + subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT); predicates .add(builder.equal(subJoin.get(FeedSubscription_.user), user)); predicates.add(builder.equal(root.get(FeedEntryStatus_.starred), true)); query.where(predicates.toArray(new Predicate[0])); if (includeContent) { - entryJoin.fetch(FeedEntry_.content); + entryJoin.fetch(FeedEntry_.content, JoinType.LEFT); } orderBy(query, entryJoin, order); @@ -140,10 +141,10 @@ public class FeedEntryStatusDAO extends GenericDAO { List predicates = Lists.newArrayList(); Join entryJoin = (Join) root - .fetch(FeedEntryStatus_.entry); + .fetch(FeedEntryStatus_.entry, JoinType.LEFT); Join subJoin = (Join) root - .fetch(FeedEntryStatus_.subscription); - subJoin.fetch(FeedSubscription_.feed); + .fetch(FeedEntryStatus_.subscription, JoinType.LEFT); + subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT); predicates .add(builder.equal(subJoin.get(FeedSubscription_.user), user)); @@ -152,7 +153,7 @@ public class FeedEntryStatusDAO extends GenericDAO { } if (includeContent) { - entryJoin.fetch(FeedEntry_.content); + entryJoin.fetch(FeedEntry_.content, JoinType.LEFT); } query.where(predicates.toArray(new Predicate[0])); @@ -195,10 +196,10 @@ public class FeedEntryStatusDAO extends GenericDAO { List predicates = Lists.newArrayList(); Join entryJoin = (Join) root - .fetch(FeedEntryStatus_.entry); + .fetch(FeedEntryStatus_.entry, JoinType.LEFT); Join subJoin = (Join) root - .fetch(FeedEntryStatus_.subscription); - subJoin.fetch(FeedSubscription_.feed); + .fetch(FeedEntryStatus_.subscription, JoinType.LEFT); + subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT); predicates .add(builder.equal(subJoin.get(FeedSubscription_.user), user)); @@ -209,7 +210,7 @@ public class FeedEntryStatusDAO extends GenericDAO { } if (includeContent) { - entryJoin.fetch(FeedEntry_.content); + entryJoin.fetch(FeedEntry_.content, JoinType.LEFT); } query.where(predicates.toArray(new Predicate[0])); @@ -239,10 +240,10 @@ public class FeedEntryStatusDAO extends GenericDAO { List predicates = Lists.newArrayList(); Join entryJoin = (Join) root - .fetch(FeedEntryStatus_.entry); + .fetch(FeedEntryStatus_.entry, JoinType.LEFT); Join subJoin = (Join) root - .fetch(FeedEntryStatus_.subscription); - subJoin.fetch(FeedSubscription_.feed); + .fetch(FeedEntryStatus_.subscription, JoinType.LEFT); + subJoin.fetch(FeedSubscription_.feed, JoinType.LEFT); predicates .add(builder.equal(subJoin.get(FeedSubscription_.user), user)); @@ -252,7 +253,7 @@ public class FeedEntryStatusDAO extends GenericDAO { } if (includeContent) { - entryJoin.fetch(FeedEntry_.content); + entryJoin.fetch(FeedEntry_.content, JoinType.LEFT); } query.where(predicates.toArray(new Predicate[0]));