Toplink - ExpressionBuilder..como passar mais de um parametro para a busca?

4 respostas
P

Opa :smiley:

Preciso passar um parametro para o toplink para ele criar um “where campo = x e campo2 = y” mas só consigo passar um parametro. Alguém sabe como q eu passo outro?

ExpressionBuilder builder = query.getExpressionBuilder();
		Expression expr = builder.get("cdFaixaPreco").equal(cdFaixaPrecoValor);

[]'s

4 Respostas

A

Tae

ExpressionBuilder builder = query.getExpressionBuilder();  
Expression expr = builder.get("cdFaixaPreco").equal(cdFaixaPrecoValor);  
expr = expr.and(builder.get("campo2").equal(y));

Para fazer um OR, ao inves de expr.and(…, use expr.or(… e assim por diante.

Até

P

Opa :smiley:

Sem qrer abusar, tem como eu dar um order e um limit ai no meio? :smiley:

A

Order:

readAllQuery.addOrderBy(expBuilder.get("address").get("city").ascending())

Nunca testei, mas é algo do tipo.

Quanto ao limite de numero de linhas, acho que vc pode adicionar:

expr = expr.and(builder.get("ROWID").lessThanEqual(numerodeLinhares));

Eu não tenho certeza se é ROW ou ROWID.
Testa ai e ve se funciona.

P

então…deu quase certo, só fica faltando eu pegar só 1 linha do resultado…tipo rodando em um client de sql, eu executo o seguinte:

select * from TB_PROMOCAO where cd_produto=56772 and cd_preco=19 and rownum=1 order by dt_inicio_validade desc

Ele me retorna um único resultado com a data maior…eu tentei passar rownum pro toplink, mas ele disse q é inválido :frowning:

Criado 17 de novembro de 2008
Ultima resposta 19 de nov. de 2008
Respostas 4
Participantes 2