Olá estou com dificuldades em retornar dados de uma tabela através uma query do hibernate e transformar em um List os erros apresentados são.
se eu executo apenas a pesquisa, funciona ok, mas quando tento converter para List a linha de erro GRAVE: ERRO: coluna users0_.idusuario não existe me chama atenção.
AVISO: SQL Error: 0, SQLState: 42703
09/05/2012 15:58:51 org.hibernate.util.JDBCExceptionReporter logExceptions
GRAVE: ERRO: coluna users0_.idusuario não existe
Exception in thread "AWT-EventQueue-0" 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:2223)
o código da query e a conversão para List.
[code] public static boolean Resovelogin(String user, int senha)
{
Session fabrica = NewHibernateUtil.getSessionFactory().getCurrentSession();
fabrica.beginTransaction();
org.hibernate.Query listagem_query = fabrica.createQuery("select u.idusuario from Users u where u.usuario = :usuario and u.senha = :senha ");
listagem_query.setParameter(“usuario”,user);
listagem_query.setParameter(“senha”,senha); // se eu executo apenas ate essa linha funciona tudo normal sem erros , mas preciso converter para um List para continuar a operação.
List lista_estoque = new ArrayList();
lista_estoque = listagem_query.list();
int c=lista_estoque.size();[/code]
}
Atributos do objeto Users da tabela Users
[code]
private int idusuario;
private String usuario;
private Integer senha;[/code]
agradeço pela atenção , excelente dia a todos.
E essa parte, chegou a notar?
GRAVE: ERRO: coluna users0_.idusuario não existe
em
org.hibernate.Query listagem_query = fabrica.createQuery("select u.idusuario from Users u where u.usuario = :usuario and u.senha = :senha ");
tente isso:
novato25 Obrigado pela resposta, testei o mencionado e o mesmo erro , se retirar o select e deixar apenas do from em diante ( HQL aceita isso ) nada de funcionar.
Alguem tem mais alguma idéia ?
Obrigado pela atenção, grato.
oi locomatt,
poderia postar o mapeamento da entidade Users?
[quote=novato25]em
org.hibernate.Query listagem_query = fabrica.createQuery("select u.idusuario from Users u where u.usuario = :usuario and u.senha = :senha ");
tente isso:
Sim com certeza notei , mas não faz sentido pois quando uso a linha abaixo que não faz nenhuma referência a idusuarios a mesma linha é apresentada.
<hibernate-mapping>
<class name="entidade.Users" table="users" schema="public">
<id name="idusuario" type="int">
<column name="IDusuario" />
<generator class="assigned" />
</id>
<property name="usuario" type="string">
<column name="usuario" />
</property>
<property name="senha" type="java.lang.Integer">
<column name="senha" />
</property>
</class>
</hibernate-mapping>
poderia postar também o seu arquivo hibernate.cfg.xml?
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://192.168.1.17:5432/Wizard2</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">01</property>
<property name="hibernate.current_session_context_class">thread</property>
<mapping resource="entidade/Classe.hbm.xml"/>
<mapping resource="entidade/Parcelas.hbm.xml"/>
<mapping resource="entidade/Users.hbm.xml"/>
<mapping resource="entidade/Sitfin.hbm.xml"/>
<mapping resource="entidade/Cursosaluno.hbm.xml"/>
<mapping resource="entidade/Caixarel.hbm.xml"/>
<mapping resource="entidade/Caixa.hbm.xml"/>
<mapping resource="entidade/Htraba.hbm.xml"/>
<mapping resource="entidade/Turma.hbm.xml"/>
<mapping resource="entidade/Responsavel.hbm.xml"/>
<mapping resource="entidade/Professores.hbm.xml"/>
<mapping resource="entidade/Estoque.hbm.xml"/>
<mapping resource="entidade/Pessoas.hbm.xml"/>
<mapping resource="entidade/Estoquecontrole.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Como está o banco de dados?
Pessoal muito obrigado pela atenção e ajuda, se alguem quiser posso mandar o projeto inteiro.
CREATE TABLE users
(
"IDusuario" serial NOT NULL,
usuario character varying,
senha integer,
CONSTRAINT users_pkey PRIMARY KEY ("IDusuario")
)
[quote=locomatt]Pessoal muito obrigado pela atenção e ajuda, se alguem quiser posso mandar o projeto inteiro.
CREATE TABLE users
(
"IDusuario" serial NOT NULL,
usuario character varying,
senha integer,
CONSTRAINT users_pkey PRIMARY KEY ("IDusuario")
)
[/quote]
Só uma pergunta…
É postgres?
Aliás, você não sabe que a convenção de nomes de tabelas define que nomes compostos são separados por underscore?
id_usuario, tbl_pessoa, centro_pagamento
Por alguma razão demoníaca, postgres e camelCase não são compatíveis.
Sim é Postgres, sobre os nomes dos campos, foi erro meu , alterai para ficar conforme convenção em apresenta o mesmo erro.
[quote=locomatt]Sim é Postgres, sobre os nomes dos campos, foi erro meu , alterai para ficar conforme convenção em apresenta o mesmo erro.
[/quote]
Camarada, sinceramente, tem algo errado nisso aí.
O mapeamento e a HQL estão, aparentemente, ok.
O erro que ele está informando é que a coluna IDUsuario não existe. Por isso deduzi que, sendo Postgres, ele teria alguma dificuldade com isto.
Vou Excluir todas as minhas entidades e mapeamentos e alterar os dados no Postgres, depois fazer engenharia inversa novamente, após sua dia.
Realmente muito obrigado pessoal.
drsmachado e novato25 , muito obrigado pela grande ajuda, segui a dica de usar nome padrão para o campo id_usuario, migrei meu projeto para o netbeans mais novo instalado em linux ( antes era windows )e agora está funcionando exatamente com o mesmo código de antes, só com a mudança do nome do campo e Netbeans mais recente no linux .
felicidades a todos colegas desse grande Forum! após deixar de ser um zé pretendo contribuir com a comunidade tb.
[quote=locomatt]drsmachado e novato25 , muito obrigado pela grande ajuda, segui a dica de usar nome padrão para o campo id_usuario, migrei meu projeto para o netbeans mais novo instalado em linux ( antes era windows )e agora está funcionando exatamente com o mesmo código de antes, só com a mudança do nome do campo e Netbeans mais recente no linux .
felicidades a todos colegas desse grande Forum! após deixar de ser um zé pretendo contribuir com a comunidade tb.[/quote]
Posso dizer que a contribuição é algo interessante.
Eu comecei tentando entender e responder tópicos simples.
Isso me ajudou a evoluir, pois eu ia atrás e pesquisava possíveis respostas.