O uso da conjunction OR obriga a que se coloque um espaço antes da condição. Caso contrário o iBatis transforma tudo numa string sem espaços e dá um SQL inválido.
Exemplo:
<iterate conjunction="OR" property="params"><![CDATA[ ]]>param_1=#params[]# </iterate>
Sem o <![CDATA[ ]]> o SQL estaria todo pegado (sem espaços) e daria SQL inválido na Base de Dados
quinta-feira, 19 de março de 2009
iBatis e uma Query com IN
Depois de andar às cabeçadas aqui vai a solução para como realizar uma query com IN no iBatis.
A classe ClasseParametros contém:
A classe ClasseParametros contém:
- params_2 -> java.util.ListList
- param_1 -> String
<update id="updateXpto"
parameterClass="ClasseParametros">
UPDATE tabela_xpto
SET param_1 = #param_1#
WHERE param_2 IN(
<iterate conjunction="," property="params_2">#params_2[]#</iterate>
)
</update>
Subscrever:
Mensagens (Atom)