cache settings and roles

This commit is contained in:
Athou
2013-06-27 11:54:30 +02:00
parent d98a1621c8
commit 42a26b86ed
2 changed files with 12 additions and 4 deletions

View File

@@ -12,6 +12,7 @@ import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.model.UserRole_;
import com.commafeed.backend.model.User_;
import com.google.common.collect.Sets;
@Stateless
@@ -29,12 +30,17 @@ public class UserRoleDAO extends GenericDAO<UserRole> {
}
public List<UserRole> findAll(User user) {
return findByField(UserRole_.user, user);
CriteriaQuery<UserRole> query = builder.createQuery(getType());
Root<UserRole> root = query.from(getType());
query.where(builder.equal(root.get(UserRole_.user).get(User_.id),
user.getId()));
return cache(em.createQuery(query)).getResultList();
}
public Set<Role> findRoles(User user) {
Set<Role> list = Sets.newHashSet();
for (UserRole role : findByField(UserRole_.user, user)) {
for (UserRole role : findAll(user)) {
list.add(role.getRole());
}
return list;

View File

@@ -8,6 +8,7 @@ import javax.persistence.criteria.Root;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserSettings;
import com.commafeed.backend.model.UserSettings_;
import com.commafeed.backend.model.User_;
@Stateless
public class UserSettingsDAO extends GenericDAO<UserSettings> {
@@ -17,11 +18,12 @@ public class UserSettingsDAO extends GenericDAO<UserSettings> {
CriteriaQuery<UserSettings> query = builder.createQuery(getType());
Root<UserSettings> root = query.from(getType());
query.where(builder.equal(root.get(UserSettings_.user), user));
query.where(builder.equal(root.get(UserSettings_.user).get(User_.id),
user.getId()));
UserSettings settings = null;
try {
settings = em.createQuery(query).getSingleResult();
settings = cache(em.createQuery(query)).getSingleResult();
} catch (NoResultException e) {
settings = null;
}