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;
import com.commafeed.backend.model.UserRole.Role; import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.model.UserRole_; import com.commafeed.backend.model.UserRole_;
import com.commafeed.backend.model.User_;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
@Stateless @Stateless
@@ -29,12 +30,17 @@ public class UserRoleDAO extends GenericDAO<UserRole> {
} }
public List<UserRole> findAll(User user) { 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) { public Set<Role> findRoles(User user) {
Set<Role> list = Sets.newHashSet(); Set<Role> list = Sets.newHashSet();
for (UserRole role : findByField(UserRole_.user, user)) { for (UserRole role : findAll(user)) {
list.add(role.getRole()); list.add(role.getRole());
} }
return list; return list;

View File

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