package net.techreadiness.persistence.dao; import java.util.Collection; import javax.persistence.TypedQuery; import net.techreadiness.persistence.domain.RolePermissionDO; import org.springframework.stereotype.Repository; @Repository public class RolePermissionDAOImpl extends BaseDAOImpl<RolePermissionDO> implements RolePermissionDAO { @Override public Collection<RolePermissionDO> getRolePermissionsByPermission(Long permissionId) { StringBuilder sb = new StringBuilder(); sb.append("select rp "); sb.append("from RolePermissionDO rp "); sb.append("where rp.permission.permissionId =:permissionId"); TypedQuery<RolePermissionDO> query = em.createQuery(sb.toString(), RolePermissionDO.class); query.setParameter("permissionId", permissionId); return getResultList(query); } @Override public RolePermissionDO getByRoleIdPermissionId(Long roleId, Long permissionId) { StringBuilder sb = new StringBuilder(); sb.append("select rp "); sb.append("from RolePermissionDO rp "); sb.append("where rp.permission.permissionId =:permissionId"); sb.append(" and rp.role.roleId =:roleId"); TypedQuery<RolePermissionDO> query = em.createQuery(sb.toString(), RolePermissionDO.class); query.setParameter("permissionId", permissionId); query.setParameter("roleId", roleId); return getSingleResult(query); } @Override public Collection<RolePermissionDO> findPermissionsForRole(Long roleId) { StringBuilder sb = new StringBuilder(); sb.append("select rp "); sb.append("from RolePermissionDO rp "); sb.append("where rp.role.roleId = :roleId"); TypedQuery<RolePermissionDO> query = em.createQuery(sb.toString(), RolePermissionDO.class); query.setParameter("roleId", roleId); return getResultList(query); } }