1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

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>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags eclipse java java-ee jpa jsf orientação-a-objetos ou faça a sua própria pergunta.