From cf185c387736b0b3c2e77ad3033522f3092d99e7 Mon Sep 17 00:00:00 2001 From: Athou Date: Mon, 12 Aug 2013 10:01:24 +0200 Subject: [PATCH] only fetch status when we know it's there --- .../java/com/commafeed/backend/dao/FeedEntryStatusDAO.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java b/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java index 34a2be21..58baf984 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java @@ -199,18 +199,21 @@ public class FeedEntryStatusDAO extends GenericDAO { ProjectionList projection = Projections.projectionList(); projection.add(Projections.property("id"), "id"); projection.add(Projections.property("updated"), "updated"); + projection.add(Projections.property(ALIAS_STATUS + ".id"), "status_id"); criteria.setProjection(projection); criteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List> list = criteria.list(); for (Map map : list) { Long id = (Long) map.get("id"); Date updated = (Date) map.get("updated"); + Long statusId = (Long) map.get("status_id"); FeedEntry entry = new FeedEntry(); entry.setId(id); entry.setUpdated(updated); FeedEntryStatus status = new FeedEntryStatus(); + status.setId(statusId); status.setEntryUpdated(updated); status.setEntry(entry); status.setSubscription(sub); @@ -230,8 +233,9 @@ public class FeedEntryStatusDAO extends GenericDAO { if (!onlyIds) { List statuses = Lists.newArrayList(); for (FeedEntryStatus status : statusPlaceholders) { + Long statusId = status.getId(); FeedEntry entry = em.find(FeedEntry.class, status.getEntry().getId()); - statuses.add(getStatus(status.getSubscription(), entry)); + statuses.add(handleStatus(statusId == null ? null : findById(statusId), status.getSubscription(), entry)); } statusPlaceholders = lazyLoadContent(includeContent, statuses); }