Cómo utilizar alias en Hibernate SQL
Descripción del problema: el proyecto se invierte de la base de datos sqlserver a la base de datos mysql. Se asigna automáticamente a objetos mediante una consulta SQL, pero siempre arroja un error. Problema extraño: la impresión SQL en el cliente de base de datos
puede ser un resultado de ejecución normal. Pero SQL simplemente no puede realizar consultas e informa que no se encuentra la columna "cuenta". Después de cambiar el controlador, pensé en el marco a llamar y la información a consultar. Descubrí que alguien dijo que usar query.addEntity("","").list() podría resolverlo. el problema, pero no hubo verificación. Porque no quiero gastar mucho esfuerzo para cambiar el marco. Al rastrear el código fuente del controlador, se descubrió que el controlador no reconocía ningún alias. En la consulta
, el valor de columnName pasado al controlador correspondiente a "userAccount" es en realidad "cuenta". Esto también es lo que mucha gente en Internet dice si sqlQuey encuentra los nombres de atributos de dos tablas. lo mismo, la consulta
reportará un error! ¡Es por eso que ocurren errores!
Código:
[ERROR][.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
en com.mysql.jdbc.SQLError .createSQLException(SQLError.java:989)
en com.975)
en com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
en com.mysql.jdbc.ResultSetImpl.findColumn( ResultSetImpl.java:1171)
en com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5737)
en org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:263)
en org.apache.commons.dbcp.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:234)
en org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.extract( CustomLoader.java:505)
en org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.extract( CustomLoader.java:505 )