Boa tarde pessoal,
já postei várias dúvidas aqui e até agora ninguém consegui me ajudar. Espero que desta vez alguém me ajude.
Estou usando hibernate + JSF e simplemente faço um select * from para aperecer em um grid, coisa simples. Só que por algum motivo, o hibernate não consegue identificar os campos.
Minha classe está assim
public class Urgencia implements java.io.Serializable {
private int idUrgencia;
…
Meu hbm está assim:
E tomo este erro: Caused by: org.postgresql.util.PSQLException: ERRO: coluna urgencia0_.idurgencia não existe
Position: 8
De onde ele tirou esse urgencia0_.idurgencia ?
Tá difícil de trabalhar com esse framework, a partir da 4.0 ficou muito bugado.
Um abraço agradeço a ajuda
Olá Gustavo, porquê não usa annotations? É muito mais prático.
Você declarou sua entidade no arquivo hibernate.cfg.xml?
Olá amigo
olha meu hibernate.cfg
org.hibernate.dialect.PostgreSQLDialect
org.postgresql.Driver
jdbc:postgresql://localhost:5432/dbsiap
postgres
gfCquake7
true
true
thread
E tem outro detalhe muito estranho, só consegui usar o wizard de engenharia reversa do hibernate depois que colocquei as minhas tabelas começando com caracter minusculo. Você falou em usar annotations: Como assim?
Gustavo
Usar annotations no seu caso está fora de questão, seu sistema está grande já pelo que vi nas suas tabelas.
Provavelmente você também verificou no banco se o campo existe.
Outras tabelas funcionam normalmente?
Até ja refiz tudo aqui usando annotations,
a tabela existe, o campo existe, mas por exemplo o campo no banco de dados se chama idUsuario, no hibernate tudo está mapeado idUsuario, na definicao da classe o campo está idUsuario, mas qdo executo os seguintes linhas do método da classe:
Session session = HibernateUtil.getSessionFactory().openSession();
tx = session.beginTransaction();
String sql = “SELECT u FROM Urgencia u”;
Query query = session.createQuery(sql);
urgencia = (Urgencia) query.uniqueResult();
eu tomo o erro: Caused by: org.postgresql.util.PSQLException: ERRO: coluna urgencia0_.idurgencia não existe.
Até mesmo usando o HQL editor eu tomo esse erro.
Gustavo
Gustavo, acho que o Postgres é case sensitive, experimente trocar o nome da tabela no banco de dados para idUrgencia, ou faça o inverso, coloque idurgencia no mapeamento do Hibernate.
Eu faço o mapeamento de ids desta forma:
<id name="idProduto" column="ID_PRODUTO">
<generator class="sequence">
<param name="sequence">SQ_PRODUTO</param>
</generator>
</id>
Outra coisa, tem certeza que o nome da sua coluna no banco de dados (não na classe) é idUrgencia e não id_urgencia?
Boa tarde à todos,
fiz o seguinte, gerei o banco no postgressql com todos os caracteres em minúsculo, depois usando o wizard do netbeans gerei novamento os POJOS. Simplesmente funcionou, vai entender
Obrigado pela ajuda
O Postgres é case sensitive, por isso não funcionou.