make sure we have something to do before entering synchronized block

This commit is contained in:
Athou
2013-05-30 12:57:14 +02:00
parent 4da9fca7ea
commit 47b9f49831
4 changed files with 73 additions and 34 deletions

View File

@@ -15,6 +15,7 @@ import com.commafeed.backend.model.Feed;
import com.commafeed.backend.model.FeedEntry;
import com.commafeed.backend.model.FeedEntry_;
import com.commafeed.backend.model.Feed_;
import com.google.common.collect.Lists;
@Stateless
public class FeedEntryDAO extends GenericDAO<FeedEntry> {
@@ -30,6 +31,20 @@ public class FeedEntryDAO extends GenericDAO<FeedEntry> {
return q.getResultList();
}
public List<FeedEntry> findByGuids(List<String> guids) {
List<String> hashes = Lists.newArrayList();
for (String guid : guids) {
hashes.add(DigestUtils.sha1Hex(guid));
}
CriteriaQuery<FeedEntry> query = builder.createQuery(getType());
Root<FeedEntry> root = query.from(getType());
query.where(root.get(FeedEntry_.guidHash).in(hashes));
root.fetch(FeedEntry_.feeds, JoinType.LEFT);
TypedQuery<FeedEntry> q = em.createQuery(query);
return q.getResultList();
}
public List<FeedEntry> findByFeed(Feed feed, int offset, int limit) {
CriteriaQuery<FeedEntry> query = builder.createQuery(getType());
Root<FeedEntry> root = query.from(getType());