From f5a32fce139f08df0f7e7e87b7ef51636b76588d Mon Sep 17 00:00:00 2001 From: Jeremie Panzer Date: Wed, 27 Mar 2013 10:46:30 +0100 Subject: [PATCH] query optimizations --- .../com/commafeed/backend/dao/FeedSubscriptionService.java | 7 +++---- src/main/java/com/commafeed/backend/model/FeedEntry.java | 3 +-- .../java/com/commafeed/backend/model/FeedSubscription.java | 5 ++--- .../com/commafeed/frontend/rest/resources/EntriesREST.java | 5 ++--- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/commafeed/backend/dao/FeedSubscriptionService.java b/src/main/java/com/commafeed/backend/dao/FeedSubscriptionService.java index 264e02aa..13687ef8 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedSubscriptionService.java +++ b/src/main/java/com/commafeed/backend/dao/FeedSubscriptionService.java @@ -6,7 +6,6 @@ import javax.ejb.Stateless; import javax.inject.Inject; import com.commafeed.backend.model.Feed; -import com.commafeed.backend.model.FeedCategory; import com.commafeed.backend.model.FeedSubscription; import com.commafeed.backend.model.User; import com.commafeed.frontend.utils.ModelFactory.MF; @@ -36,14 +35,14 @@ public class FeedSubscriptionService extends GenericDAO } public List findAll(User user) { - return findByField(MF.i(MF.p(FeedCategory.class).getUser()), user); + return findByField(MF.i(proxy().getUser()), user); } public List findWithoutCategories(User user) { EasyCriteria criteria = EasyCriteriaFactory .createQueryCriteria(em, getType()); - criteria.andEquals("user", user); - criteria.andIsNull("category"); + criteria.andEquals(MF.i(proxy().getUser()), user); + criteria.andIsNull(MF.i(proxy().getCategory())); return criteria.getResultList(); } diff --git a/src/main/java/com/commafeed/backend/model/FeedEntry.java b/src/main/java/com/commafeed/backend/model/FeedEntry.java index 397e421c..4db44d40 100644 --- a/src/main/java/com/commafeed/backend/model/FeedEntry.java +++ b/src/main/java/com/commafeed/backend/model/FeedEntry.java @@ -5,7 +5,6 @@ import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.FetchType; import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; @@ -23,7 +22,7 @@ public class FeedEntry extends AbstractModel { @Column(length = 2048) private String guid; - @ManyToOne(fetch = FetchType.EAGER) + @ManyToOne private Feed feed; @Column(length = 2048) diff --git a/src/main/java/com/commafeed/backend/model/FeedSubscription.java b/src/main/java/com/commafeed/backend/model/FeedSubscription.java index 5165980a..e62ca49f 100644 --- a/src/main/java/com/commafeed/backend/model/FeedSubscription.java +++ b/src/main/java/com/commafeed/backend/model/FeedSubscription.java @@ -2,7 +2,6 @@ package com.commafeed.backend.model; import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.FetchType; import javax.persistence.ManyToOne; import javax.persistence.Table; @@ -11,10 +10,10 @@ import javax.persistence.Table; @SuppressWarnings("serial") public class FeedSubscription extends AbstractModel { - @ManyToOne(fetch = FetchType.EAGER) + @ManyToOne private User user; - @ManyToOne(fetch = FetchType.EAGER) + @ManyToOne private Feed feed; @Column(length = 128) diff --git a/src/main/java/com/commafeed/frontend/rest/resources/EntriesREST.java b/src/main/java/com/commafeed/frontend/rest/resources/EntriesREST.java index 71f52b46..e8f7df20 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/EntriesREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/EntriesREST.java @@ -61,8 +61,7 @@ public class EntriesREST extends AbstractREST { } else { FeedCategory feedCategory = null; if (!ALL.equals(id)) { - feedCategory = new FeedCategory(); - feedCategory.setId(Long.valueOf(id)); + feedCategory = feedCategoryService.findById(getUser(), Long.valueOf(id)); } List childrenCategories = feedCategoryService .findAllChildrenCategories(getUser(), feedCategory); @@ -75,7 +74,7 @@ public class EntriesREST extends AbstractREST { } }); - entries.setName(ALL.equals(id) ? ALL : feedCategory.getName()); + entries.setName(ALL.equals(id) ? "All" : feedCategory.getName()); entries.getEntries().addAll( buildEntries(childrenCategories, subMapping, offset, limit, unreadOnly));