package net.techreadiness.persistence.dao; import java.util.Collections; import java.util.List; import javax.persistence.TypedQuery; import net.techreadiness.persistence.domain.PermissionDO; import org.springframework.stereotype.Repository; @Repository public class PermissionDAOImpl extends BaseDAOImpl<PermissionDO> implements PermissionDAO { @Override public List<PermissionDO> findAllAncestorPermissions(Long scopeId) { if (null == scopeId) { return Collections.emptyList(); } StringBuilder sb = new StringBuilder(); sb.append(" select distinct p "); sb.append(" from PermissionDO p, ScopeTreeDO st "); sb.append(" where st.ancestorScope.scopeId = p.scope.scopeId"); sb.append(" and st.scope.scopeId = :scopeid"); sb.append(" order by p.displayOrder, p.name"); TypedQuery<PermissionDO> query = em.createQuery(sb.toString(), PermissionDO.class); query.setParameter("scopeid", scopeId); query.setHint("org.hibernate.cacheable", Boolean.TRUE); return getResultList(query); } }