package net.techreadiness.persistence.dao;
import java.util.List;
import javax.persistence.TypedQuery;
import net.techreadiness.persistence.domain.ScopeTypeDO;
import org.springframework.stereotype.Repository;
@Repository
public class ScopeTypeDAOImpl extends BaseDAOImpl<ScopeTypeDO> implements ScopeTypeDAO {
@Override
public List<ScopeTypeDO> findChildTypesByScopeId(Long scopeId) {
StringBuilder qry = new StringBuilder();
TypedQuery<ScopeTypeDO> query = null;
if (scopeId == null) {
qry.append(" select st ");
qry.append(" from ScopeTypeDO st");
qry.append(" where");
qry.append(" st.parentScopeType.scopeTypeId is null");
query = em.createQuery(qry.toString(), ScopeTypeDO.class);
} else {
qry.append(" select st ");
qry.append(" from ScopeDO s,");
qry.append(" ScopeTypeDO st");
qry.append(" where");
qry.append(" s.scopeType.scopeTypeId = st.parentScopeType.scopeTypeId");
qry.append(" and s.scopeId = :scopeId");
query = em.createQuery(qry.toString(), ScopeTypeDO.class);
query.setParameter("scopeId", scopeId);
}
return getResultList(query);
}
}