package net.techreadiness.persistence.dao;
import java.util.List;
import javax.persistence.TypedQuery;
import net.techreadiness.persistence.dao.EntityDAO.EntityTypeCode;
import net.techreadiness.persistence.domain.EntityRuleDO;
import org.springframework.stereotype.Repository;
@Repository
public class EntityRuleDAOImpl extends BaseDAOImpl<EntityRuleDO> implements EntityRuleDAO {
@Override
public List<EntityRuleDO> findValidationRules(Long scopeId, EntityTypeCode entityType) {
StringBuilder sb = new StringBuilder();
sb.append(" select er ");
sb.append(" from EntityRuleDO er, ScopeTreeDO tree ");
sb.append(" where er.entity.scope = tree.ancestorScope");
sb.append(" and tree.scope.scopeId=:scopeId ");
sb.append(" and er.entity.entityType.code=:typeCode ");
sb.append(" and er.type='validation' ");
sb.append(" and (er.disabled is null or er.disabled != 1) ");
TypedQuery<EntityRuleDO> query = em.createQuery(sb.toString(), EntityRuleDO.class);
query.setParameter("scopeId", scopeId);
query.setParameter("typeCode", entityType.toString());
return getResultList(query);
}
@Override
public List<EntityRuleDO> findViewRules(Long scopeId, EntityTypeCode entityType) {
StringBuilder sb = new StringBuilder();
sb.append(" select er ");
sb.append(" from EntityRuleDO er, ScopeTreeDO tree ");
sb.append(" where er.entity.scope = tree.ancestorScope");
sb.append(" and tree.scope.scopeId=:scopeId ");
sb.append(" and er.entity.entityType.code=:typeCode ");
sb.append(" and er.type='view' ");
sb.append(" and (er.disabled is null or er.disabled != 1) ");
TypedQuery<EntityRuleDO> query = em.createQuery(sb.toString(), EntityRuleDO.class);
query.setParameter("scopeId", scopeId);
query.setParameter("typeCode", entityType.toString());
return getResultList(query);
}
}