package com.commafeed.backend.dao; import java.util.List; import java.util.Set; import javax.ejb.Stateless; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.JoinType; import javax.persistence.criteria.Root; 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.google.common.collect.Sets; @Stateless public class UserRoleDAO extends GenericDAO { @Override public List findAll() { CriteriaQuery query = builder.createQuery(getType()); Root root = query.from(getType()); query.distinct(true); root.fetch(UserRole_.user, JoinType.LEFT); return em.createQuery(query).getResultList(); } public List findAll(User user) { return findByField(UserRole_.user, user); } public Set findRoles(User user) { Set list = Sets.newHashSet(); for (UserRole role : findByField(UserRole_.user, user)) { list.add(role.getRole()); } return list; } }