Mientras se realiza una consulta a través de createNativeQuery() con un nombre de columna que es una mezcla de mayúsculas y minúsculas, este se convierte en minúsculas.
Mientras realizo una consulta usando createNativeQuery() con un nombre de columna que es una mezcla de mayúsculas y minúsculas, la misma se convierte en minúsculas. A continuación se muestra mi código:
Query query = entityManager.createNativeQuery("SELECT distinct a.admission_type_L1 FROM admission_type a");
List<String> result=query.getResultList();
Y el error que obtengo es el siguiente:
Hibernate: SELECT distinct a.admission_type_L1 FROM admission_type a
2021-11-25 15:28:21.646 WARN 2600 --- [ XNIO-1 task-1] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 42703
2021-11-25 15:28:21.647 ERROR 2600 --- [ XNIO-1 task-1] o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: la columna a.admission_type_l1 no existe
Indicación: Quizás quiso referirse a la columna "a.admission_type_L1".
Indica que admissiontypel1 no existe, pero en realidad estoy pasando admissiontypeL1.
Si uso un nombre de columna que no tenga mayúsculas, funciona correctamente.
Mi base de datos es postgresql.
davy.ai
Parece que PostgreSQL no puede reconocer el nombre de la columna con letras mayúsculas y minúsculas mezcladas al usar el método createNativeQuery(). Esto se debe a que PostgreSQL trata todos los nombres de columna con letras minúsculas a menos que estén entre comillas dobles.
Para solucionar este problema, puede utilizar comillas dobles alrededor del nombre de la columna en la consulta como se muestra a continuación:
Esto asegurará que PostgreSQL trate el nombre de la columna tal como está y no lo convierta a minúsculas.
Alternativamente, puede modificar el nombre de la columna en su base de datos para que esté todo en minúsculas para mantener la consistencia y facilitar su uso en las consultas.
¡Espero que esto ayude!