Versão atual:

Lista esta retornando nula.

Olá Pessoal, sou novo em java, se alguém puder me ajudar informando como posso resolver essa lista que esta voltando nula:

Minha Query:

    public List<Ressalva> searchByCriteriosRessalva(Ressalva criteriosRessalva) {
        //TODO Falta incluir nessa query a empresa logada na sessão, porem ainda não temos essa funcionalidade
        HashMap<String,Object> hmParam = new HashMap<String,Object>();
        HashMap<String,Object> hmValue = new HashMap<String,Object>();

        if((criteriosRessalva.getDescricao()!=null) && (!criteriosRessalva.getDescricao().isEmpty())){
            hmParam.put("descricao","LOWER(r.descricao) LIKE :descricao");
            hmValue.put("descricao", "%"+criteriosRessalva.getDescricao().toLowerCase()+"%");
        }


        if(criteriosRessalva.getPersonagem().getId()>0){
            hmParam.put("idPersonagem","r.personagem.id =:idPersonagem");
            hmValue.put("idPersonagem", criteriosRessalva.getPersonagem().getId());
        }

        if((criteriosRessalva.getTipoEvento()!=null) && (!criteriosRessalva.getTipoEvento().isEmpty())){
            hmParam.put("tipoEvento","r.tipoEvento =:tipoEvento");
            hmValue.put("tipoEvento",criteriosRessalva.getTipoEvento().toUpperCase());
        }


        if((criteriosRessalva.getTipoRessalva()!=null) && (!criteriosRessalva.getTipoRessalva().isEmpty())){
            hmParam.put("tipoRessalva","r.tipoRessalva =:tipoRessalva");
            hmValue.put("tipoRessalva",criteriosRessalva.getTipoRessalva().toUpperCase());
        }

        if (hmParam.isEmpty()) {
            return null;
        } else {
            return search(hmParam, hmValue);
        }

    }


    public List<Ressalva> search(Map<String,Object> param, Map<String,Object> value) {

        StringBuilder sb = new StringBuilder();

        Set<Entry<String, Object>> set = param.entrySet();
        Iterator<Entry<String, Object>> i = set.iterator();
        while(i.hasNext()) {
            Map.Entry me = (Map.Entry)i.next();
            sb.append(me.getValue());
            if (i.hasNext()){
                sb.append(" and ");
            }
        } 


        TypedQuery<Ressalva>query = getEntityManager().createQuery(
                    "SELECT r " +
                    "FROM Ressalva r " +
                    (sb.length()>1?"WHERE "+sb.toString():""),persistentClass);

            for (Entry<String,Object> e: value.entrySet()){
                query.setParameter(e.getKey(), e.getValue());
            }
            return query.getResultList();


    }




Minha BO: 


public static List<Ressalva> listarRessalvasEspecificas(Ressalva ressalva){
        return new RessalvaDAO().searchByCriteriosRessalva(ressalva);
    }




Meu Bean: 


private Ressalva ressalva = new Ressalva();
private List<Ressalva> listRessalva = new ArrayList<Ressalva>();

public void buscarRessalvasEspecificas(){
        listRessalva = port.listarRessalvasEspecificas(ressalva);
    }

//Gets e Sets


Meu JSF:

<!-- alguns inputs -->

   <p class="text-right">
                                    <h:commandButton styleClass="btn" value="Pesquisar" actionListener="#{ressalvaBean.buscarRessalvasEspecificas}">
                                      <f:ajax render="idTableRessalvas"/>
                                        <i class="icon-search"/>
                                    </h:commandButton>
                                     <h:commandButton styleClass="btn" value="Limpar" update="formBuscaRessalva,idTableRessalvas" type="reset">
                                      <f:ajax render="idTableRessalvas formBuscaRessalva"/>
                                        <i class="icon-search"/>
                                    </h:commandButton>
                            </p>
                  </fieldset>
                  <p:dataTable id="idTableRessalvas" value="#{ressalvaBean.listRessalva}" var="ress" paginator="true" rows="5" rowsPerPageTemplate="5,10" paginatorPosition="top" rendered="#{ressalvaBean.listRessalva != null}">
                      <f:facet name="header">Lista de Ressalvas Cadastradas</f:facet>
                        <p:column headerText="Descrição">
                             <h:outputText value="#{ress.descricao}"/>
                        </p:column>
                        <p:column headerText="Tipo de Ressalva">
                             <h:outputText value="#{ress.tipoRessalva}"/>
                        </p:column>
                        <p:column headerText="Responsável">
                             <h:outputText value="#{ress.personagem.descricao}"/>
                        </p:column>
                        <p:column headerText="Tipo de Evento">
                             <h:outputText value="#{ress.tipoEvento}"/>
                        </p:column>
                  </p:dataTable>
                </h:form>

Versões(3):

Ver a versão formatada

Lista esta retornando nula.

Comentário

new question