index hashes

This commit is contained in:
Athou
2013-04-14 18:28:48 +02:00
parent 0b96f5f95b
commit 86edd54a21
6 changed files with 60 additions and 4 deletions

View File

@@ -7,9 +7,12 @@ import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.apache.commons.codec.digest.DigestUtils;
import com.commafeed.backend.model.Feed;
import com.commafeed.backend.model.FeedEntry;
import com.commafeed.backend.model.FeedEntry_;
import com.google.api.client.util.Lists;
import com.uaihebert.model.EasyCriteria;
@Stateless
@@ -17,11 +20,23 @@ import com.uaihebert.model.EasyCriteria;
public class FeedEntryDAO extends GenericDAO<FeedEntry> {
public List<FeedEntry> findByGuids(List<String> guids) {
List<String> hashes = Lists.newArrayList();
for (String guid : guids) {
hashes.add(DigestUtils.sha1Hex(guid));
}
EasyCriteria<FeedEntry> criteria = createCriteria();
criteria.setDistinctTrue();
criteria.andStringIn(FeedEntry_.guid.getName(), guids);
criteria.andStringIn(FeedEntry_.guidHash.getName(), hashes);
criteria.leftJoinFetch(FeedEntry_.feeds.getName());
return criteria.getResultList();
List<FeedEntry> list = Lists.newArrayList();
for (FeedEntry entry : criteria.getResultList()) {
if (guids.contains(entry.getGuid())) {
list.add(entry);
}
}
return list;
}
public List<FeedEntry> findByFeed(Feed feed, int offset, int limit) {