Query dinamica não funciona totalmente

1 resposta
D

Estou enfrentando um problema com uma query dinamica que fiz e num consigo resolver nem a pau. Já olhei vários posts e nenhum resolveu meu problema.
Fiz o seguinte código:

public List<Pessoa> buscaFiltro(){
		List<Pessoa> listaPessoa = null;
		List<String> queryDinamica = new ArrayList<String>();
		if(nome != null){
			queryDinamica.add("lower(pessoa.nome) like concat('%',lower(#{nome}),'%')");
		}
		if(situacao != null){
			queryDinamica.add("lower(pessoa.situacao.situacaoAtual) like concat('%',lower(#{situacao}),'%')");
		}
		try{
			EntityQuery<Pessoa> entityQuery = new EntityQuery<Pessoa>();
			entityQuery.setEntityManager(entityManager);
			entityQuery.setEjbql(" FROM Pessoa pessoa");
			entityQuery.setRestrictionExpressionStrings(queryDinamica);
			listaPessoa = entityQuery.getResultList();
		}catch(NoResultException noresultex) {
			
		} catch(NonUniqueObjectException nouniqueex) {
			
		}
		nome = null;
		situacaoAtual = null;

		return listaPessoa;
	}

O código acima funciona até certo ponto.
Vou dar um exemplo e vôcês vão entender:

Tabela Pessoa
Nome -------------- Situacao
Fulano1------------- Ativo
Beltrano2----------- Ativo
Ciclano3------------ Ativo

quando digito no meu campo ‘Ful’ ele pesquisa e me traz corretamente o resultado. Só que quando eu digito ‘Fulano’ ele não me retorna nada. Percebi que a partir de 4 digitos ele não me retorna nada. Mesma coisa pros outros.

como posso resolver esse problema?

1 Resposta

D

alguém?

Criado 24 de abril de 2012
Ultima resposta 28 de abr. de 2012
Respostas 1
Participantes 1