Amigos,
Estou começando no Hibernate e já neste exemplo básico não consigo rodar o programa. Já procurei por erros mas não sei o que é.
A classe
public class Produto {
private String nome;
private String marca;
private Integer estoque;
private double preco;
private Integer id;
//construtor e getters and setters
O mapeamento
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Produto" table="produto">
<id name="id">
<generator class="increment"/>
</id>
<property name="nome"/>
<property name="marca"/>
<property name="estoque"/>
<property name="preco"/>
</class>
</hibernate-mapping>
hibernate.cfg.xml
<!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.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">org.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/locadora</property>
<property name="hibernate.connection.username">paullo</property>
<property name="hibernate.connection.password">123456</property>
<mapping resource="./produto/Produto.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Testando
public class TesteProduto {
public static void main(String[] args) {
Session sessao = HibernateUtility.getSession(); //abrindo uma sessão
Transaction transaction = sessao.beginTransaction(); //inicando uma transação
Produto produto = new Produto();
produto.setNome("Arroz Integral");
produto.setMarca("Delícia");
produto.setEstoque(50);
produto.setPreco(3.75);
sessao.save(produto);
transaction.commit();
sessao.close();
}
}
O erro no console é este:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.InvalidMappingException: Could not parse mapping document from resource ./produto/Produto.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at bd.HibernateUtility.<clinit>(HibernateUtility.java:11)
at produto.TesteProduto.main(TesteProduto.java:11)
Caused by: org.hibernate.MappingException: class Produto not found while looking for property: id
at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:74)
at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:276)
at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:401)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:334)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
at org.hibernate.cfg.Configuration.add(Configuration.java:669)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
... 7 more
Caused by: java.lang.ClassNotFoundException: Produto
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:70)
... 15 more
Exception in thread "main" java.lang.NullPointerException
at bd.HibernateUtility.getSession(HibernateUtility.java:19)
at produto.TesteProduto.main(TesteProduto.java:11)
Alguém pode me ajudar?