Gostaria de saber se alguém pode me ajudar a sair desta cilada. Preciso realizar uma consulta relacionando duas tabelas, mas o problema é que o banco não possui integridade (MYSQL 3). Como estou criando uma extensão para um sistema antigo desenvolvido em delphi, não posso ficar mechendo nas tabelas antigas, senão já viu . . . Estou tentando utilizar o método createSQLQuery(), mas não estou obtendo sucesso. Será que o jeito é utilizar somente JDBC puro nesses casos ?
Você não está obtendo sucesso pq? Qual a dificuldade que vc está tendo? Talvez usar JDBC seja o aconselhado mesmo para seu caso já que o banco não está com integridade e vc não vai poder desfrutar de vantagens do hibernate.
. . . .
.createSQLQuery("SELECT {C.*} FROM clientes C, exp_consig E WHERE E.export = '4' AND C.cod_clie = E.consig ")
.addEntity("C", Clientes.class)
.addEntity("E", ExpConsig.class)
.list();
Mas ele registra a seguinte exceção :
Exception in thread "main" (type.IntegerType 182 ) could not read column value from result set: export94_1_; Column 'export94_1_' not found.
(util.JDBCExceptionReporter 77 ) SQL Error: 0, SQLState: S0022
(util.JDBCExceptionReporter 78 ) Column 'export94_1_' not found.
org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2214)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
at org.hibernate.loader.Loader.list(Loader.java:2090)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
at com.br.ibfweb.draft.dao.ClientesDAO.listConsigneeByExportador(ClientesDAO.java:68)
at com.br.ibfweb.draft.dao.Teste.main(Teste.java:21)
Caused by: java.sql.SQLException: Column 'export94_1_' not found.
at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:910)
at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:2353)
at org.hibernate.type.IntegerType.get(IntegerType.java:28)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
at org.hibernate.type.ComponentType.hydrate(ComponentType.java:560)
at org.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:275)
at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1088)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:553)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2211)
... 8 more
A coluna que está sendo citada na exceção está definida no arquivo de configuração :