From 62a77278ff6959c4de94cd93b1174c03d7fd1e36 Mon Sep 17 00:00:00 2001 From: Athou Date: Wed, 12 Jun 2013 05:05:10 +0200 Subject: [PATCH] load feeds only when needed --- .../java/com/commafeed/backend/dao/FeedEntryDAO.java | 4 ---- .../commafeed/backend/services/FeedUpdateService.java | 11 ++++++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java b/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java index b84b9301..a712a4a3 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java @@ -27,14 +27,10 @@ public class FeedEntryDAO extends GenericDAO { CriteriaQuery query = builder.createQuery(getType()); Root root = query.from(getType()); - query.distinct(true); query.where(builder.equal(root.get(FeedEntry_.guidHash), hash)); TypedQuery q = em.createQuery(query); List list = q.getResultList(); - for (FeedEntry entry : list) { - Hibernate.initialize(entry.getFeeds()); - } return list; } diff --git a/src/main/java/com/commafeed/backend/services/FeedUpdateService.java b/src/main/java/com/commafeed/backend/services/FeedUpdateService.java index e3959fb2..2cf50f37 100644 --- a/src/main/java/com/commafeed/backend/services/FeedUpdateService.java +++ b/src/main/java/com/commafeed/backend/services/FeedUpdateService.java @@ -6,6 +6,8 @@ import java.util.List; import javax.ejb.Stateless; import javax.inject.Inject; +import org.hibernate.Hibernate; + import com.commafeed.backend.MetricsBean; import com.commafeed.backend.dao.FeedEntryDAO; import com.commafeed.backend.dao.FeedEntryStatusDAO; @@ -52,9 +54,12 @@ public class FeedUpdateService { entry.getFeeds().add(feed); update = entry; - } else if (FeedUtils.findFeed(foundEntry.getFeeds(), feed) == null) { - foundEntry.getFeeds().add(feed); - update = foundEntry; + } else { + Hibernate.initialize(foundEntry.getFeeds()); + if (FeedUtils.findFeed(foundEntry.getFeeds(), feed) == null) { + foundEntry.getFeeds().add(feed); + update = foundEntry; + } } if (update != null) {