mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
index hashes
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user