Saltar al contenido

java.sql.SQLException: nombre de columna no válido

Solución:

El problema no es la consulta. La consulta funciona bien.

El problema está en el mapeo de filas que convierte una fila de la ResultSet en un objeto de dominio. Parece que, como parte del mapeo de filas en su aplicación, está tratando de leer el ResultSet un valor de una columna que no contiene.

Las líneas clave de su stacktrace son las siguientes tres, cerca de la parte inferior:

    at org.apache.commons.dbcp2.DelegatingResultSet.getString(DelegatingResultSet.java:267)
    at no.gjensidige.bank.datavarehus.kontonrinfridd.Application.lambda$run$0(Application.java:69)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:93)

La mitad de estas tres líneas parecería estar en su código. Línea 69 de tu Application la clase contiene una lambda que llama ResultSet.getString(), pero como esto da como resultado un error de ‘Nombre de columna no válido’, entonces (a) está pasando una cadena para un nombre de columna en lugar de un índice de columna numérico, y (b) el nombre de columna que está pasando no existe en el conjunto de resultados.

Ahora que ha editado su pregunta para incluir la llamada a jdbcTemplate.query(), y en particular la lambda responsable de mapear una fila de conjunto de resultados a un objeto, el problema es un poco más claro. Al llamar rs.getInt(...) o rs.getString(...) con nombres de columna en lugar de índices, no incluya prefijos como p. o x.. En lugar de escribir rs.getInt("p.applicationid") o rs.getInt("x.datadocumentid"), escribir rs.getInt("applicationid") o rs.getInt("datadocumentid").

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *