forked from Archives/Athou_commafeed
use criteria api where possible
This commit is contained in:
@@ -6,7 +6,6 @@ import java.util.List;
|
||||
|
||||
import javax.ejb.Stateless;
|
||||
import javax.inject.Inject;
|
||||
import javax.persistence.TypedQuery;
|
||||
|
||||
import org.apache.commons.lang.ObjectUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
@@ -15,7 +14,9 @@ import com.commafeed.backend.model.Feed;
|
||||
import com.commafeed.backend.model.FeedEntry;
|
||||
import com.commafeed.backend.model.FeedEntryStatus;
|
||||
import com.commafeed.backend.model.FeedSubscription;
|
||||
import com.commafeed.frontend.utils.ModelFactory.MF;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.uaihebert.model.EasyCriteria;
|
||||
|
||||
@Stateless
|
||||
@SuppressWarnings("serial")
|
||||
@@ -81,10 +82,11 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
||||
}
|
||||
|
||||
public List<FeedEntry> getByGuids(List<String> guids) {
|
||||
TypedQuery<FeedEntry> query = em.createNamedQuery("Entry.byGuids",
|
||||
FeedEntry.class);
|
||||
query.setParameter("guids", guids);
|
||||
return query.getResultList();
|
||||
EasyCriteria<FeedEntry> criteria = createCriteria();
|
||||
criteria.setDistinctTrue();
|
||||
criteria.andStringIn(MF.i(proxy().getGuid()), guids);
|
||||
criteria.leftJoinFetch(MF.i(proxy().getFeeds()));
|
||||
return criteria.getResultList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,9 +14,12 @@ import org.apache.commons.lang.StringUtils;
|
||||
import com.commafeed.backend.model.Feed;
|
||||
import com.commafeed.backend.model.FeedCategory;
|
||||
import com.commafeed.backend.model.FeedEntryStatus;
|
||||
import com.commafeed.backend.model.FeedSubscription;
|
||||
import com.commafeed.backend.model.User;
|
||||
import com.commafeed.frontend.utils.ModelFactory.MF;
|
||||
import com.google.api.client.util.Lists;
|
||||
import com.google.api.client.util.Maps;
|
||||
import com.uaihebert.model.EasyCriteria;
|
||||
|
||||
@Stateless
|
||||
@SuppressWarnings("serial")
|
||||
@@ -26,14 +29,19 @@ public class FeedEntryStatusService extends GenericDAO<FeedEntryStatus> {
|
||||
FeedCategoryService feedCategoryService;
|
||||
|
||||
public FeedEntryStatus findById(User user, Long id) {
|
||||
TypedQuery<FeedEntryStatus> query = em.createNamedQuery(
|
||||
"EntryStatus.byId", FeedEntryStatus.class);
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("id", id);
|
||||
|
||||
EasyCriteria<FeedEntryStatus> criteria = createCriteria();
|
||||
criteria.andEquals(MF.i(proxy().getId()), id);
|
||||
|
||||
criteria.innerJoinFetch(MF.i(proxy().getSubscription()));
|
||||
criteria.innerJoinFetch(MF.i(proxy().getEntry()));
|
||||
|
||||
criteria.andJoinEquals(MF.i(proxy().getSubscription()),
|
||||
MF.i(MF.p(FeedSubscription.class).getUser()), user);
|
||||
|
||||
FeedEntryStatus status = null;
|
||||
try {
|
||||
status = query.getSingleResult();
|
||||
status = criteria.getSingleResult();
|
||||
} catch (NoResultException e) {
|
||||
status = null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user