Hibernate com hibernate.properties

Gente, estou tentando persistir dados usando hibernate e arquivo de configuração properties, porém mesmo o arquivo properties estando presente e configurado fico recebendo um erro referente a falta do arquivo hibernate.cfg.xml. Não entendo porque ele fica pedindo o arquivo hibernate.cfg.xml se eu já tenho o arquivo de configuração em formato properties.

1 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.5.2-Final 24 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.2-Final 28 [main] INFO org.hibernate.cfg.Environment - loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=org.postgresql.Driver, hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect, hibernate.format_sql=true, hibernate.connection.username=postgres, hibernate.hbm2ddl.auto=create;, hibernate.connection.url=jdbc:postgresql://localhost:5432/Jcounter, hibernate.bytecode.use_reflection_optimizer=false, hibernate.show_sql=true, hibernate.connection.password=****} 34 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 37 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 156 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final 164 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml 164 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml Initial SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not found Exception in thread "main" java.lang.ExceptionInInitializerError at br.com.jcounter.extras.HibernateUtil.<clinit>(HibernateUtil.java:28) at br.com.jcounter.extras.Dao.<init>(Dao.java:23) at testeGravacao.main(testeGravacao.java:66) Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170) at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1497) at org.hibernate.cfg.Configuration.configure(Configuration.java:1519) at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1194) at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:107) at org.hibernate.cfg.Configuration.configure(Configuration.java:1506) at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1188) at br.com.jcounter.extras.HibernateUtil.<clinit>(HibernateUtil.java:24) ... 2 more Java Result: 1

Aqui o meu arquivo properties.

hibernate.connection.driver_class = org.postgresql.Driver hibernate.connection.url = jdbc:postgresql://localhost:5432/Jcounter hibernate.connection.username = postgres hibernate.connection.password = postgres hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect hibernate.show_sql = true hibernate.format_sql = true hibernate.hbm2ddl.auto=create;

Olá

Aconselho a usar o hibernate.cfg.xml, e não o arquivo .properties.
Ele fica mais ou menos assim

&lt;?xml version='1.0' encoding='UTF-8'?&gt;
&lt;!DOCTYPE hibernate-configuration PUBLIC  "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&gt;
&lt;hibernate-configuration&gt;
&lt;session-factory&gt;
	&lt;property name="connection.url"&gt;jdbc:postgresql://localhost/firsthibernate&lt;/property&gt;
	&lt;property name="connection.username"&gt;postgres&lt;/property&gt;
	&lt;property name="connection.driver_class"&gt;org.postgresql.Driver&lt;/property&gt;
	&lt;property name="dialect"&gt;org.hibernate.dialect.PostgreSQLDialect&lt;/property&gt;
	&lt;property name="connection.password"&gt;p&lt;/property&gt;
 &lt;property name="transaction.factory_class"&gt;org.hibernate.transaction.JDBCTransactionFactory&lt;/property&gt;
  
  &lt;!--  thread is the short name for
      org.hibernate.context.ThreadLocalSessionContext
      and let Hibernate bind the session automatically to the thread
    --&gt;
    &lt;property name="current_session_context_class"&gt;thread&lt;/property&gt;
  
  &lt;!-- this will show us all sql statements --&gt;
    &lt;property name="hibernate.show_sql"&gt;true&lt;/property&gt;
	
    &lt;!-- mapping files --&gt;
	&lt;mapping resource="de/laliluna/example/Honey.hbm.xml" /&gt;
&lt;/session-factory&gt;
&lt;/hibernate-configuration&gt;

Esse exemplo é para Postgre… ok!?

Espero ter ajudado
Flwss

Hummm, no caso se eu quiser usar o derby, eu uso o mesmo arquivo, mas altero os paramentros???

valeu a todos!

O thiago, está corredo é melhor o uso do do xml ao invés do properties.

Mas, so a titulo de curiosidade, está exception é lançado porque você deve estar iniciando o hibernate da seguinte maneira:

AnnorationConfiguraion config = new AnnotationConfiguration(); config.configure(); // este metodo é chamado para fazer a leitura do hibernate.cfg.xml

Como disse no comentario o metodo configure() tem o objetivo de ler o xml, se você usa o properties não precisa chamar ele!
A leitura do properties é feita pela chamada ao construtor new AnnotationConfiguration();

Porque todos aconselham a usar o xml , qual é a diferença? e aonde coloco o Hibernate.cfg.xml , usando essa opção tenho que criar um xml para cada entidade que for mapear?

Preciso de um tutorial completo.

[quote=Leo_def]Porque todos aconselham a usar o xml , qual é a diferença? e aonde coloco o Hibernate.cfg.xml , usando essa opção tenho que criar um xml para cada entidade que for mapear?

Preciso de um tutorial completo.[/quote]
Cuidado ao olhar tópicos antigos (veja as datas das respostas).
O xml é um ótimo recurso, mas o uso do arquivo .properties está sendo cada vez maior.
Não existe problema algum, ambos vão atender.
O que provavelmente o autor do tópico teve como problema foi quando tentou instanciar o Configuration. Ao invés de

Configuration cfg = new Configuration();

Que permite obter as configurações do hibernate.properties, ele deve ter feito

Configuration cfg = new Configuration().configure();

Que busca o arquivo hibernate.cfg.xml.