Subqueries com parâmetros

3 respostas
F

Pessoal

Por favor, a linha abaixo está errada ? Recebo sempre uma excessão de IllegalArgumentException.

"from custos cc where cc.id not in (select lb.custos_id from loginbeneficios_custos lb where lb.loginbeneficios_id =?1)"

Agradeço qualquer ajuda.

3 Respostas

visola

A exceção deve ocorrer no setInt(int, int) do seu PreparedStatement, correto?
Isso porque ele espera apenas a interrogação, sem o valor como índice. O índice é calculado automaticamente.

Você precisa alterar sua query para:

"... = ?"

E como só tem um parâmetro na consulta, coloca o valor diretamente, pelo índice calculado automaticamente:

st.setInt(1, {valor});
F

Oi visola

Obg pela resposta, mas já descobri o erro. Eu estava escrevendo a querystring de maneira errada. Não estava escrevendo o nome das entidades , nem as suas propriedades de forma adequada com as classes. Msmo assim, valeu a atenção

Abs

visola

Desculpa, pela sua query, assumi que estava usando JDBC e achei que você tinha cortado um pedaço para ficar mais sucinto.
Que bom que já resolveu.

Criado 31 de janeiro de 2011
Ultima resposta 1 de fev. de 2011
Respostas 3
Participantes 2