handle session expiration

This commit is contained in:
Athou
2013-03-23 19:46:09 +01:00
parent 1871fa1169
commit f0ac0d1722
9 changed files with 128 additions and 17 deletions

View File

@@ -21,7 +21,7 @@ public class FeedEntryStatusService extends GenericDAO<FeedEntryStatus, Long> {
FeedEntryStatus status = null;
try {
criteria.getSingleResult();
status = criteria.getSingleResult();
} catch (NoResultException e) {
status = null;
}

View File

@@ -10,13 +10,15 @@ import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import com.commafeed.backend.model.AbstractModel;
import com.commafeed.frontend.utils.ModelFactory.MF;
import com.google.common.reflect.TypeToken;
import com.uaihebert.factory.EasyCriteriaFactory;
import com.uaihebert.model.EasyCriteria;
@SuppressWarnings("serial")
public abstract class GenericDAO<T, K> implements Serializable {
public abstract class GenericDAO<T, K> implements
Serializable {
private TypeToken<T> type = new TypeToken<T>(getClass()) {
};
@@ -41,6 +43,14 @@ public abstract class GenericDAO<T, K> implements Serializable {
}
}
public void saveOrUpdate(AbstractModel m) {
if (m.getId() == null) {
em.persist(m);
} else {
em.merge(m);
}
}
public void delete(T object) {
object = em.merge(object);
em.remove(object);

View File

@@ -0,0 +1,29 @@
package com.commafeed.backend.dao;
import javax.ejb.Stateless;
import javax.persistence.NoResultException;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserSettings;
import com.commafeed.frontend.utils.ModelFactory.MF;
import com.uaihebert.factory.EasyCriteriaFactory;
import com.uaihebert.model.EasyCriteria;
@Stateless
public class UserSettingsService extends GenericDAO<UserSettings, Long> {
public UserSettings findByUser(User user) {
EasyCriteria<UserSettings> criteria = EasyCriteriaFactory
.createQueryCriteria(em, getType());
criteria.andEquals(MF.i(proxy().getUser()), user);
UserSettings settings = null;
try {
settings = criteria.getSingleResult();
} catch (NoResultException e) {
settings = null;
}
return settings;
}
}