2013-03-20 20:33:42 +01:00
|
|
|
package com.commafeed.backend.dao;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
import javax.ejb.Stateless;
|
|
|
|
|
|
2013-03-25 12:24:00 +01:00
|
|
|
import com.commafeed.backend.model.Feed;
|
2013-04-08 15:49:34 +02:00
|
|
|
import com.commafeed.backend.model.FeedCategory;
|
2013-03-23 16:17:19 +01:00
|
|
|
import com.commafeed.backend.model.FeedSubscription;
|
2013-04-12 10:44:41 +02:00
|
|
|
import com.commafeed.backend.model.FeedSubscription_;
|
2013-03-23 16:17:19 +01:00
|
|
|
import com.commafeed.backend.model.User;
|
2013-03-25 12:24:00 +01:00
|
|
|
import com.google.common.collect.Iterables;
|
2013-03-22 11:42:25 +01:00
|
|
|
import com.uaihebert.factory.EasyCriteriaFactory;
|
|
|
|
|
import com.uaihebert.model.EasyCriteria;
|
2013-03-20 20:33:42 +01:00
|
|
|
|
|
|
|
|
@Stateless
|
2013-04-11 20:49:08 +02:00
|
|
|
public class FeedSubscriptionDAO extends GenericDAO<FeedSubscription> {
|
2013-03-20 20:33:42 +01:00
|
|
|
|
2013-03-25 12:24:00 +01:00
|
|
|
public FeedSubscription findById(User user, Long id) {
|
|
|
|
|
EasyCriteria<FeedSubscription> criteria = createCriteria();
|
2013-04-12 10:44:41 +02:00
|
|
|
criteria.andEquals(FeedSubscription_.user.getName(), user);
|
|
|
|
|
criteria.andEquals(FeedSubscription_.id.getName(), id);
|
|
|
|
|
criteria.leftJoinFetch(FeedSubscription_.feed.getName());
|
|
|
|
|
criteria.leftJoinFetch(FeedSubscription_.user.getName());
|
2013-03-25 12:24:00 +01:00
|
|
|
return Iterables.getFirst(criteria.getResultList(), null);
|
|
|
|
|
}
|
|
|
|
|
|
2013-04-08 07:54:46 +02:00
|
|
|
public List<FeedSubscription> findByFeed(Feed feed) {
|
|
|
|
|
EasyCriteria<FeedSubscription> criteria = createCriteria();
|
2013-04-12 10:44:41 +02:00
|
|
|
criteria.andEquals(FeedSubscription_.feed.getName(), feed);
|
2013-04-08 07:54:46 +02:00
|
|
|
return criteria.getResultList();
|
|
|
|
|
}
|
|
|
|
|
|
2013-03-25 12:24:00 +01:00
|
|
|
public FeedSubscription findByFeed(User user, Feed feed) {
|
|
|
|
|
EasyCriteria<FeedSubscription> criteria = createCriteria();
|
2013-04-12 10:44:41 +02:00
|
|
|
criteria.andEquals(FeedSubscription_.user.getName(), user);
|
|
|
|
|
criteria.andEquals(FeedSubscription_.feed.getName(), feed);
|
2013-03-25 12:24:00 +01:00
|
|
|
return Iterables.getFirst(criteria.getResultList(), null);
|
|
|
|
|
}
|
|
|
|
|
|
2013-03-20 20:33:42 +01:00
|
|
|
public List<FeedSubscription> findAll(User user) {
|
2013-04-08 13:06:53 +02:00
|
|
|
EasyCriteria<FeedSubscription> criteria = createCriteria();
|
2013-04-12 10:44:41 +02:00
|
|
|
criteria.andEquals(FeedSubscription_.user.getName(), user);
|
2013-04-08 15:49:34 +02:00
|
|
|
|
2013-04-12 10:44:41 +02:00
|
|
|
criteria.innerJoinFetch(FeedSubscription_.feed.getName());
|
|
|
|
|
criteria.innerJoinFetch(FeedSubscription_.user.getName());
|
|
|
|
|
criteria.leftJoinFetch(FeedSubscription_.category.getName());
|
2013-04-08 13:06:53 +02:00
|
|
|
return criteria.getResultList();
|
2013-03-20 20:33:42 +01:00
|
|
|
}
|
2013-03-22 22:11:40 +01:00
|
|
|
|
2013-04-10 22:07:44 +02:00
|
|
|
public List<FeedSubscription> findByCategory(User user,
|
|
|
|
|
FeedCategory category) {
|
|
|
|
|
EasyCriteria<FeedSubscription> criteria = EasyCriteriaFactory
|
|
|
|
|
.createQueryCriteria(em, getType());
|
2013-04-12 10:44:41 +02:00
|
|
|
criteria.andEquals(FeedSubscription_.user.getName(), user);
|
|
|
|
|
criteria.andEquals(FeedSubscription_.category.getName(), category);
|
2013-04-10 22:07:44 +02:00
|
|
|
return criteria.getResultList();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2013-03-22 11:42:25 +01:00
|
|
|
public List<FeedSubscription> findWithoutCategories(User user) {
|
2013-03-22 22:11:40 +01:00
|
|
|
EasyCriteria<FeedSubscription> criteria = EasyCriteriaFactory
|
|
|
|
|
.createQueryCriteria(em, getType());
|
2013-04-12 10:44:41 +02:00
|
|
|
criteria.andEquals(FeedSubscription_.user.getName(), user);
|
|
|
|
|
criteria.andIsNull(FeedSubscription_.category.getName());
|
2013-03-22 11:42:25 +01:00
|
|
|
return criteria.getResultList();
|
2013-03-22 22:11:40 +01:00
|
|
|
|
2013-03-22 11:42:25 +01:00
|
|
|
}
|
2013-03-20 20:33:42 +01:00
|
|
|
}
|