Povo, eu tentei evitar ao máximo este post, por ser tão básico. Mas o fato é que estou desde de segunda tentando usar Hibernate aqui, e só to levando rasteira. Estou usando annotations. Então, ‘anotei’ as classes que devem ser persistidas, criei meu HibernateUtil.java, e o hibernate.cfg.xml.
Dentro do main() usei a forma mais simples de preencher os atributos, ou seja, objeto.setNome(“nome”); E fiz isso para os demais. Só que estou tento esse erro, eu sei que é chato postar isso, mas vai lá:
0 [main] INFO annotations.Version - Hibernate Annotations 3.2.0.CR1
31 [main] INFO cfg.Environment - Hibernate 3.2 cr2
47 [main] INFO cfg.Environment - hibernate.properties not found
47 [main] INFO cfg.Environment - Bytecode provider name : cglib
125 [main] INFO cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
453 [main] WARN connection.UserSuppliedConnectionProvider - No connection properties specified - the user must supply JDBC connections
Exception in thread “main” java.lang.ExceptionInInitializerError
at Main.HibernateUtil.<clinit>(HibernateUtil.java:15)
at Main.Main.main(Main.java:39)
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:397)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:111)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1928)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211)
at Main.HibernateUtil.<clinit>(HibernateUtil.java:12)
… 1 more
Java Result: 1
Eu, com todo meu aaamplo conhecimento no assunto
:?: diria que o erro está no meu hibernate.cfg.xml, mas vejam:
<!-- Database connection settings -->
<property name="connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
<property name="connection.url">jdbc:firebirdsql:localhost/3050:C:/Documents and Settings/Vinicius Kopcheski/Meus documentos/Comercial/database/COMERCIAL.FDB</property>
<property name="connection.username">SYSDBA</property>
<property name="connection.password">masterkey</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.FirebirdDialect</property>
Acredito que esta parte dele seja a relevante. Alguém pode me orientar?
Ps1. Pesso desculpas pelo tamanho do post, tentei resumi-lo ao maximo.
Ps2. É necessário que usse BBCode no XML?
Muito Obrigado
Olá,
o erro está na exception que vc postou:
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
Como verifique se vc identificou o Dialect que vc irá usar no seu hibernate.cfg.xml.
Abraços!
Então, como eu postei, o dialect está definido, veja:
<!-- SQL dialect -->
<property name=“dialect”>org.hibernate.dialect.FirebirdDialect</property>
De acordo com o que diz na documentação do Hibernate, é assim que deve informar, no caso de usar o Firebird.
acho q o erro está na url de conexão…
e no dialect, talvez ele não tenha encontrado a key completa… tente:
<property name="hibernate.dialect">org.hibernate.dialect.FirebirdDialect</property>
outras questões… me perdoe se forem banais:
- driver do banco está no classpath?
- banco está rodando?
Pois é, já fucei essa url muito. Testei agora também sua sugestão, mas o erro ainda é o mesmo. Quanto ao dialect, a mesma coisa.
Classpath: tudo quanto é .jar que você possa imaginar que esteja envolvido nisso, está no classpath :???:
Sim, o banco também está rodando.
Parece que o HibernateUtil não está lendo o hibernate.cfg.xml, pois, se eu retirar o cfg.xml do meu projeto, o erro é mesmo.
Se bem que, apesar de parecer isso, quando tenho o cfg.xml no projeto, é gerado um .bak dele, ou seja, ele é lido.
Cara, que merda. Fiz um minu curso de Hibernate Annotations no começo do mês. O PC que eu usava deu problema no fim do curso e perdi todas minhas anotacoes e meus fontes. Já mandei uma 3 email para o cara que deu o curso pedindo os fontes. Ele diz que vai mandar, mas até agora, nada.
bom… o esquema da URL estava mesmo errado…
mas em todo caso, do jeito q vc esta dizendo, parece q ele não encontrou msm o xml… então:
.onde vc colocou o hibernate.cfg.xml ?
.vc está chamando o factory no hibernateUtil?
não sei nem mais oq dizer… minhas ideias d oq pode estar errado estão se esgotando…
Coloquei o hibernate.cfg.xml na raiz do projeto. Esse foi um dos vários testes que fiz. Coloquei ele em todo lugar possível no meu projeto.
Sim, estou chamando ele sim. Apenas com uma diferença, veja:
Na documentação do Hibernate Annotations, diz que tenho que fazer desta forma.
hmmmm… putz, q foda…
se vc ja colocou o cfg.xml em todos os lugares do projeto… tente indicar exatamente pro factory onde ele está…
so mais uma coisa q vi… não me parece ser este o problema, mas vc está usando jdk 1.4? pq o annotations saiu no java 5…
no código q vc postou,
Tentei essa forma de informar ao factory. Tentei realmente todas as possíveis, mas sem sucesso… :sad:
Pois é, esse detalhe do jdk1.4 eu já tinha reparado. Mas estou realmente utilizando o 5. Tanto que é o unico jdk que tenho instalado.
O que parece que o problema é realmente no cfg.xml. O erro é o mesmo se eu por exemplo, retirar o .jar do Jaybird do classpath, ou simplesmente nao iniciar o banco. Até, como eu disse antes, se eu deixar o projeto sem o cfg.xml o erro continua o mesmo.
Po cara, eu te agradeço muito, realmente. Talvez minha falha seja tão obvia que nao tenha percebido. Muito obrigado mesmo.