Mapeamento no hibernate

Galera,
Gostaria de esclarecer uma dúvida em relação ao hibernate, estou seguindo os exemplos da caelum (o pai nosso do java).
Com muito luta em relação as biliotecas do hibernate, consegui fazer funcionar.
Segue meus códigos, em seguida escrevo a dúvida.

arquivo HibernateUtil

package geral;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.Session;


public class HibernateUtil {
	private static SessionFactory factory;
		static {
			AnnotationConfiguration cfg = new AnnotationConfiguration();
			factory = cfg.buildSessionFactory();
		}
		public Session getSession() {
			return factory.openSession();
	}
}

Arquivo geraTabelas

package geral;
import  org.hibernate.cfg.AnnotationConfiguration;  
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class GeraTabelas {
	public static void main(String[] args) {
		//Cria uma configuração para a classe Produto
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Produto.class);
		
		SchemaExport se = new SchemaExport(cfg);
		se.create(true,true);
	}
}

Arquivo Produto

package geral;
import java.util.Calendar;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
 

@Entity
public class Produto {
	@Id
	@GeneratedValue
	private int id;
	private String nome;
	private double preco;
	private Calendar dataInicioVenda;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public double getPreco() {
		return preco;
	}
	public void setPreco(double preco) {
		this.preco = preco;
	}
	public Calendar getDataInicioVenda() {
		return dataInicioVenda;
	}
	public void setDataInicioVenda(Calendar dataInicioVenda) {
		this.dataInicioVenda = dataInicioVenda;
	}
	
}

arquivo ProdutoDAO

package dao;

import geral.Produto;
import org.hibernate.Session;

public class ProdutoDAO {
	private Session session;
	public ProdutoDAO (Session session) {
		this.session = session;
	}
	public void salva (Produto p) {
		this.session.save(p);
	}
	public void remove (Produto p) {
		this.session.delete(p);
		this.session.flush();
	}
	public Produto procura (Long id) {
		return (Produto) this.session.load(Produto.class, id);
	}
	public void atualiza (Produto p) {
		this.session.update(p);
		this.session.flush();
	}
/* comentei aqui, pois vou testar posteriormente

	public List<Produto> listaTudo() {
		return this.session.createCriteria(Produto.class).list();
	}
	public List<Produto> pagina (int inicio, int quantia) {
		return this.session.createCriteria(Produto.class)
			.setMaxResults(quantia).setFirstResult(inicio).list();
	}
	public List<Produto> precoMaiorQue(double preco) {
		Query query = this.session.createQuery("from Produto where preco > :preco");
		query.setDouble("preco", preco);
		return query.list();
	}
*/
}

Arquivo hibernate.properties

hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql://localhost/fj21
hibernate.connection.username = root
hibernate.connection.password =
hibernate.show_sql = true
hibernate.format_sql = true

Arquivo AdicionaProduto

package geral;

import java.util.GregorianCalendar;
import org.hibernate.Session;
import geral.Produto;

public class AdicionaProduto {
	public static void main(String[] args) {
		Produto p = new Produto();
		p.setNome("Produto1");
		p.setDataInicioVenda(new GregorianCalendar(2009, 1, 26));
		p.setPreco(100.50);
		
		Session session = new HibernateUtil().getSession();
		session.save(p);
		
		System.out.println("ID do produto: " + p.getId());
		session.close();		
	}
}

Arquivo Produto.hbm.xml

<?xml version="1.0"?>  
 <!DOCTYPE hibernate-mapping PUBLIC   
     "-//Hibernate Mapping DTD 3.0//EN"     
     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
      
 <hibernate-mapping>    
     <class name="hibernate.geral.Produto" table="produto">    
         <id name="id"  column="id">    
              <generator class="assigned"/>    
          </id>    
          <property name="dataInicioVenda" column="dataInicioVenda"/>    
          <property name="nome" column="nome"/>    
          <property name="preco" column="preco"/>    
      </class>    
 </hibernate-mapping> 

mensagem do console:

0    [main] INFO  org.hibernate.cfg.annotations.Version  - Hibernate Annotations 3.4.0.GA
31   [main] INFO  org.hibernate.cfg.Environment  - Hibernate 3.3.0.SP1
47   [main] INFO  org.hibernate.cfg.Environment  - loaded properties from resource hibernate.properties: {hibernate.connection.username=root, hibernate.connection.password=****, hibernate.dialect=org.hibernate.dialect.MySQLDialect, hibernate.show_sql=true, hibernate.connection.url=jdbc:mysql://localhost/fj21, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.driver_class=com.mysql.jdbc.Driver, hibernate.format_sql=true}
47   [main] INFO  org.hibernate.cfg.Environment  - Bytecode provider name : javassist
63   [main] INFO  org.hibernate.cfg.Environment  - using JDK 1.4 java.sql.Timestamp handling
203  [main] INFO  org.hibernate.annotations.common.Version  - Hibernate Commons Annotations 3.1.0.GA
219  [main] DEBUG org.hibernate.cfg.AnnotationConfiguration  - Validator not present in classpath, ignoring event listener registration
219  [main] DEBUG org.hibernate.cfg.search.HibernateSearchEventListenerRegister  - Search not present in classpath, ignoring event listener registration.
219  [main] INFO  org.hibernate.cfg.search.HibernateSearchEventListenerRegister  - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
219  [main] DEBUG org.hibernate.cfg.Configuration  - Preparing to build session factory with filters : {}
219  [main] DEBUG org.hibernate.cfg.AnnotationConfiguration  - Execute first pass mapping processing
313  [main] DEBUG org.hibernate.cfg.AnnotationConfiguration  - Process hbm files
313  [main] DEBUG org.hibernate.cfg.AnnotationConfiguration  - Process annotated classes
313  [main] DEBUG org.hibernate.cfg.AnnotationConfiguration  - processing fk mappings (*ToOne and JoinedSubclass)
313  [main] DEBUG org.hibernate.cfg.Configuration  - processing extends queue
313  [main] DEBUG org.hibernate.cfg.Configuration  - processing collection mappings
313  [main] DEBUG org.hibernate.cfg.Configuration  - processing native query and ResultSetMapping mappings
313  [main] DEBUG org.hibernate.cfg.Configuration  - processing association property references
313  [main] DEBUG org.hibernate.cfg.Configuration  - processing foreign key constraints
313  [main] INFO  org.hibernate.cfg.AnnotationConfiguration  - Hibernate Validator not found: ignoring
313  [main] INFO  org.hibernate.connection.DriverManagerConnectionProvider  - Using Hibernate built-in connection pool (not for production use!)
313  [main] INFO  org.hibernate.connection.DriverManagerConnectionProvider  - Hibernate connection pool size: 20
313  [main] INFO  org.hibernate.connection.DriverManagerConnectionProvider  - autocommit mode: false
344  [main] INFO  org.hibernate.connection.DriverManagerConnectionProvider  - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost/fj21
344  [main] INFO  org.hibernate.connection.DriverManagerConnectionProvider  - connection properties: {user=root, password=}
344  [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider  - opening new JDBC connection
922  [main] DEBUG org.hibernate.connection.DriverManagerConnectionProvider  - created connection to: jdbc:mysql://localhost/fj21, Isolation Level: 4
922  [main] INFO  org.hibernate.cfg.SettingsFactory  - RDBMS: MySQL, version: 5.1.41
922  [main] INFO  org.hibernate.cfg.SettingsFactory  - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.7 ( Revision: ${svn.Revision} )
953  [main] INFO  org.hibernate.dialect.Dialect  - Using dialect: org.hibernate.dialect.MySQLDialect
1047 [main] INFO  org.hibernate.transaction.TransactionFactoryFactory  - Using default transaction strategy (direct JDBC transactions)
1047 [main] INFO  org.hibernate.transaction.TransactionManagerLookupFactory  - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Automatic flush during beforeCompletion(): disabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Automatic session close at end of transaction: disabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - JDBC batch size: 15
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - JDBC batch updates for versioned data: disabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Scrollable result sets: enabled
1047 [main] DEBUG org.hibernate.cfg.SettingsFactory  - Wrap result sets: disabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - JDBC3 getGeneratedKeys(): enabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Connection release mode: auto
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Maximum outer join fetch depth: 2
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Default batch fetch size: 1
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Generate SQL with comments: disabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Order SQL updates by primary key: disabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Order SQL inserts for batching: disabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
1047 [main] INFO  org.hibernate.hql.ast.ASTQueryTranslatorFactory  - Using ASTQueryTranslatorFactory
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Query language substitutions: {}
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - JPA-QL strict compliance: disabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Second-level cache: enabled
1047 [main] INFO  org.hibernate.cfg.SettingsFactory  - Query cache: disabled
1063 [main] INFO  org.hibernate.cfg.SettingsFactory  - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
1063 [main] INFO  org.hibernate.cfg.SettingsFactory  - Optimize cache for minimal puts: disabled
1063 [main] INFO  org.hibernate.cfg.SettingsFactory  - Structured second-level cache entries: disabled
1063 [main] INFO  org.hibernate.cfg.SettingsFactory  - Echoing all SQL to stdout
1063 [main] INFO  org.hibernate.cfg.SettingsFactory  - Statistics: disabled
1063 [main] INFO  org.hibernate.cfg.SettingsFactory  - Deleted entity synthetic identifier rollback: disabled
1063 [main] INFO  org.hibernate.cfg.SettingsFactory  - Default entity-mode: pojo
1063 [main] INFO  org.hibernate.cfg.SettingsFactory  - Named query checking : enabled
1156 [main] INFO  org.hibernate.impl.SessionFactoryImpl  - building session factory
1156 [main] DEBUG org.hibernate.impl.SessionFactoryImpl  - Session factory constructed with filter configurations : {}
1156 [main] DEBUG org.hibernate.impl.SessionFactoryImpl  - instantiating session factory with properties: {java.runtime.name=Java(TM) SE Runtime Environment, hibernate.connection.password=, sun.boot.library.path=C:\Arquivos de programas\Java\jre6\bin, java.vm.version=14.3-b01, hibernate.connection.username=root, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot(TM) Client VM, file.encoding.pkg=sun.io, user.country=BR, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=Service Pack 3, java.vm.specification.name=Java Virtual Machine Specification, user.dir=C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate, java.runtime.version=1.6.0_17-b04, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=C:\Arquivos de programas\Java\jre6\lib\endorsed, os.arch=x86, java.io.tmpdir=C:\DOCUME~1\F06003~1\CONFIG~1\Temp\, line.separator=
, java.vm.specification.vendor=Sun Microsystems Inc., user.variant=, os.name=Windows XP, sun.jnu.encoding=Cp1252, java.library.path=C:\Arquivos de programas\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre6/bin/client;C:/Arquivos de programas/Java/jre6/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0, java.specification.name=Java Platform API Specification, java.class.version=50.0, sun.management.compiler=HotSpot Client Compiler, os.version=5.1, user.home=C:\Documents and Settings\F06003380, user.timezone=GMT-03:00, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=Cp1252, java.specification.version=1.6, hibernate.format_sql=true, hibernate.connection.driver_class=com.mysql.jdbc.Driver, user.name=F06003380, java.class.path=C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\bin;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\ant-contrib-1.0b2.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\ant-junit-1.6.5.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\antlr-2.7.6.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\antlr.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\asm-attrs.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\asm.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\c3p0-0.9.1.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\cglib-2.2.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\commons-collections-3.1.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\commons-collections.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\dom4j-1.6.1.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\dom4j.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\ehcache-1.2.3.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\ejb3-persistence.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\hibernate-annotations.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\hibernate-commons-annotations.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\hibernate-core.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\hibernate3.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\javassist-3.9.0.GA.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\javassist.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\jboss-cache-1.4.1.GA.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\jbosscache-core-3.1.0.GA.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\jta-1.1.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\jta.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\junit-3.8.1.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\junit.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\log4j.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\mysql-connector-java-5.1.7-bin.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\oscache-2.1.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\proxool-0.8.3.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\slf4j-api-1.5.8.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\slf4j-api.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\slf4j-log4j12.jar;C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\wtpwebapps\ROOT\hibernate\lib\swarmcache-1.0RC2.jar, hibernate.bytecode.use_reflection_optimizer=false, hibernate.show_sql=true, java.vm.specification.version=1.0, sun.arch.data.model=32, java.home=C:\Arquivos de programas\Java\jre6, hibernate.connection.url=jdbc:mysql://localhost/fj21, hibernate.dialect=org.hibernate.dialect.MySQLDialect, java.specification.vendor=Sun Microsystems Inc., user.language=pt, awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, java.version=1.6.0_17, java.ext.dirs=C:\Arquivos de programas\Java\jre6\lib\ext;C:\WINDOWS\Sun\Java\lib\ext, sun.boot.class.path=C:\Arquivos de programas\Java\jre6\lib\resources.jar;C:\Arquivos de programas\Java\jre6\lib\rt.jar;C:\Arquivos de programas\Java\jre6\lib\sunrsasign.jar;C:\Arquivos de programas\Java\jre6\lib\jsse.jar;C:\Arquivos de programas\Java\jre6\lib\jce.jar;C:\Arquivos de programas\Java\jre6\lib\charsets.jar;C:\Arquivos de programas\Java\jre6\classes, java.vendor=Sun Microsystems Inc., file.separator=\, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, sun.cpu.endian=little, sun.io.unicode.encoding=UnicodeLittle, sun.desktop=windows, sun.cpu.isalist=}
1156 [main] DEBUG org.hibernate.impl.SessionFactoryObjectFactory  - initializing class SessionFactoryObjectFactory
1172 [main] DEBUG org.hibernate.impl.SessionFactoryObjectFactory  - registered: 8a8383df278b373901278b3739ff0000 (unnamed)
1172 [main] INFO  org.hibernate.impl.SessionFactoryObjectFactory  - Not binding factory to JNDI, no JNDI name configured
1172 [main] DEBUG org.hibernate.impl.SessionFactoryImpl  - instantiated session factory
1172 [main] DEBUG org.hibernate.impl.SessionFactoryImpl  - Checking 0 named HQL queries
1172 [main] DEBUG org.hibernate.impl.SessionFactoryImpl  - Checking 0 named SQL queries
1313 [main] DEBUG org.hibernate.impl.SessionImpl  - opened session at timestamp: 12693510046
Exception in thread "main" org.hibernate.MappingException: Unknown entity: geral.Produto
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:580)
	at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1365)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)
	at geral.AdicionaProduto.main(AdicionaProduto.java:15)

Consegui fazer o hibernate gerar a tabela atraves da aplicação java.
Porem conforme vocês podem ver, ele não encotra a classe Produto, tentei criar o arquivo Produto.hbm.xml, porém na apostila nem cita ele (talvez ele vem no exemplo que tem zipado, porém nao achei estes exemplos no site da caelum).
Conforme pesquisei em alguns tópicos, estou usando anotações, correto?
qual seria o melhor procedimento, ter um arquivo hibernate.hbm.xml mapeando todas classes, ou separa cada hbm.xml conforme classe?

Enfim, minha dúvida maior é fazer este adicionaProduto funcionar

trocar para

Ve se funciona

Esse tutorial… ensina a fazer a configuração do Hiberante com annotations:

http://www.javaframework.org/portal/2010/03/17/iniciando-com-hibernate-3-utilizando-annotations/

rogelgarcia,

Eu coloquei desta maneira , mas não funcionou.

Então esse arquivo (Produto.hbm.xml ) é realmente necessário né? é ele que faz o mapeamento da classe, tem como fazer este mapeamento somente dentro do
hibernate.properties?
qual é o mais indicado? criar um .hbm.xml para todas classes?

Vou seguir o tutorial que você passou.
valeu.

Eu nao conheço uma forma de mapear só no hibernate.properties as entidades…

Quando eu fazia mapeamento com XML eu usava um XML só pra tudo… mas aí é questao de gosto…

Mas foi pouco tempo que usei XML… logo passei para annotations…

Com annotations esse tipo de problema acontece menos…

Talvez no seu caso… o hibernate nao tá lendo seu hbm

Pelo que eu vi… nao tem nenhuma referencia para o arquivo Produto.hbm.xml mesmo nao

Eu coloco o arquivo dentro do src do projeto, mas onde devo referenciar?

Ahh, consegui fazer o exemplo do tutorial que você me passou.

vi que tem alguns métodos a mais como o de transação, vou ter que estudar um pouco mais rsrsrsrsr.
valeu.

Seria num config do hibernate :smiley:

Aquele hibernate cfg (nao lembro de cabeça o nome do arquivo)

Mas bom que deu certo o tutorial aí… agora vc pode usar annotations… hhehe

ufa! consegui fazer funcionar.

o arquivo hibernateUtil ficou assim:

package geral;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.Session;


public class HibernateUtil {
	private static SessionFactory factory;
		static {
			AnnotationConfiguration cfg = new AnnotationConfiguration();
			factory = cfg.configure("hibernate.hbm.xml").buildSessionFactory(); //aqui houve mudança
		}
		public Session getSession() {
			return factory.openSession();
	}
}

configurei o arquivo Produto.hbm.xml

<?xml version="1.0"?>  
 <!DOCTYPE hibernate-mapping PUBLIC   
     "-//Hibernate Mapping DTD 3.0//EN"     
     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
      
 <hibernate-mapping>    
     <class name="geral.Produto" table="produto">    
         <id name="id"  column="id">    
              <generator class="assigned"/>    
          </id>    
          <property name="dataInicioVenda" column="dataInicioVenda"/>    
          <property name="nome" column="nome"/>    
          <property name="preco" column="preco"/>    
      </class>    
 </hibernate-mapping> 

e meu hibernate.hbm.xml ficou assim

<?xml version="1.0" encoding="UTF-8"?>  
 <!DOCTYPE hibernate-configuration PUBLIC  
         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
 <hibernate-configuration>  
      <session-factory>  
		 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
		 <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/fj21</property>  
		 <property name="hibernate.connection.username">root</property>  
		 <property name="hibernate.connection.password"></property>  
		 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  
		 <property name="show_sql">true</property>          
         
         <mapping class="geral.Produto"/>   
      </session-factory>  
 </hibernate-configuration> 

só para esclarecer, aparece esse tipo de mensagem no final do console quando eu executo o AdicionaProduto

2344 [main] DEBUG org.hibernate.jdbc.ConnectionManager  - opening JDBC connection
2360 [main] DEBUG org.hibernate.SQL  - 
    insert 
    into
        Produto
        (dataInicioVenda, nome, preco) 
    values
        (?, ?, ?)
Hibernate: 
    insert 
    into
        Produto
        (dataInicioVenda, nome, preco) 
    values
        (?, ?, ?)
2422 [main] DEBUG org.hibernate.id.IdentifierGeneratorFactory  - Natively generated identity: 3
2422 [main] DEBUG org.hibernate.jdbc.AbstractBatcher  - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
ID do produto: 3
2438 [main] DEBUG org.hibernate.jdbc.ConnectionManager  - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
2438 [main] DEBUG org.hibernate.jdbc.ConnectionManager  - aggressively releasing JDBC connection

Esta tudo ok?

gostaria de agradecer pela ajuda, senão, estaria até agora( ou amanhã, depois …) tentando rsrsr
valeu.

Tá tudo normal… é isso mesmo

Flw … até mais