denormalized fields on statuses for faster queries

This commit is contained in:
Athou
2013-07-14 05:48:47 +02:00
parent ca9c10a1d3
commit 24ee418f3f
6 changed files with 123 additions and 77 deletions

View File

@@ -43,8 +43,7 @@ public class FeedEntryService {
}
} else {
if (status == null) {
status = new FeedEntryStatus();
status.setEntry(entry);
status = new FeedEntryStatus(user, sub, entry);
status.setSubscription(sub);
}
status.setRead(false);
@@ -78,8 +77,7 @@ public class FeedEntryService {
}
} else {
if (status == null) {
status = new FeedEntryStatus();
status.setEntry(entry);
status = new FeedEntryStatus(user, sub, entry);
status.setSubscription(sub);
status.setRead(true);
}

View File

@@ -93,8 +93,7 @@ public class FeedSubscriptionService {
List<FeedEntry> allEntries = feedEntryDAO.findByFeed(feed, 0,
10);
for (FeedEntry entry : allEntries) {
FeedEntryStatus status = new FeedEntryStatus();
status.setEntry(entry);
FeedEntryStatus status = new FeedEntryStatus(user, sub, entry);
status.setRead(false);
status.setSubscription(sub);
statuses.add(status);

View File

@@ -75,12 +75,11 @@ public class FeedUpdateService {
List<FeedEntryStatus> statusUpdateList = Lists.newArrayList();
List<User> users = Lists.newArrayList();
for (FeedSubscription sub : subscriptions) {
FeedEntryStatus status = new FeedEntryStatus();
status.setEntry(update);
User user = sub.getUser();
FeedEntryStatus status = new FeedEntryStatus(user, sub, update);
status.setSubscription(sub);
statusUpdateList.add(status);
users.add(sub.getUser());
users.add(user);
}
cache.invalidateUserData(users.toArray(new User[0]));
feedEntryDAO.saveOrUpdate(update);