Tengo una clase que contiene un LinkedHashMap con valores para los campos de una BD, siendo la key el nombre de cada uno. Estos valores provienen de archivos creados por los usuarios y para disitintas tablas, por lo que para hacer un insert necesito asegurar el orden y que el nombre de los campos es el correcto.
INSERT INTO tabla (campo1,campo2,campo3) VALUES (valor1,valor2,valor3)
El problema es que por lo que he visto, mediante la etiqueta <iterate> sólo puedo obtener los valores, no las keys.
Necesitaría algo así
Código:
<insert id="insertar" parameterClass="clasemodelo">
INSERT INTO tabla (
<iterate property="mapa" conjunction=",">
#mapa[].key# <=== Esto es lo que creo que no se puede hacer
</iterate>
) VALUES (
<iterate property="mapa" conjunction=",">
#mapa[]# <=== Esto sí funciona para valores
</iterate>
)
He leído por ahí soluciones como añadir un elemento al mapa que sea una lista de los campos, pero preferiría evitarlo ya que me imagino que tiene que haber una forma más elegante.
¿Existe alguna forma cómoda de hacer lo que quiero de forma directa, pasando parámetros o con statements?
Saludos y gracias