Hibernate

11 respostas
V

Galera ta dificil…!!!

estou executando ak e ta dando o seguinte erro:

org.hibernate.MappingException: entity class not found: Amigo at org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:99) at org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:166) at org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44) at org.hibernate.tuple.EntityMetamodel.<init>(EntityMetamodel.java:115) at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:412) at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:108) at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:216) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176) at br.AmigoDAO.<init>(AmigoDAO.java:14) at br.TesteAmigo.main(TesteAmigo.java:17) Caused by: java.lang.ClassNotFoundException: Amigo at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:108) at org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:96) ... 10 more

se eu nao intendi mal , ta falando que nao acho a classe amigo , mas esta classe esta no mesmo package… !

???algum help ai !!!???

11 Respostas

furutani

e ai Vinicius
manda o mapeamento dele ai pra gente ver

V

Arquivo Amigo.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping.dtd">
<hibernate-mapping>
    <class name="Amigo" table="amigos">
        <id name="nome" column="nome" type="string">
            <generator class="assigned"/>
        </id>
        <property name="endereco" type="string"/>
        <property name="telefone" column="fone" type="string"/>
        <property name="celular" column="cel" type="string"/>
        <property name="email" type="string"/>
        <property name="nascimento" type="date"/>
    </class>
</hibernate-mapping>
furutani

Vc tem que indicar o nome do pacote

<class name="nome.pacote.Amigo" table="amigos">

deve ser isso!

V

Legal, parou de dar erro só que nao esta inserindo no BD !

furutani

Agora deve estar dando outro erro.
manda ai pra nós

V

Intao veio , no log nao ta aparecendo nada .!
estranho…

o log finaliza assim:15:30:38,317 DEBUG DriverManagerConnectionProvider:129 - returning connection to pool, pool size: 1 15:30:38,317 DEBUG JDBCContext:199 - after transaction completion 15:30:38,317 DEBUG JDBCContext:199 - after transaction completion 15:30:38,317 DEBUG ConnectionManager:398 - aggressively releasing JDBC connection 15:30:38,317 DEBUG ConnectionManager:398 - aggressively releasing JDBC connection 15:30:38,317 DEBUG SessionImpl:417 - after transaction completion 15:30:38,317 DEBUG SessionImpl:417 - after transaction completion

V

da uma olha na minha classe DAO

public class AmigoDAO{

   private SessionFactory factory;

   public AmigoDAO() throws Exception{
       factory = new Configuration().addClass(Amigo.class).buildSessionFactory();
   }     

   public void insert(Amigo amigo) throws Exception{
      Session session = factory.openSession();
      session.save(amigo);
      session.flush();
      session.close();
   }
..........
furutani

O método insert não está lançando alguma exceção?
Coloca a chamada do método num try…catch

V

O problema é que nao esta gerendo exeção!

achei isso no log:

15:47:51,700 DEBUG DriverManagerConnectionProvider:93 - total checked-out connections: 0
15:47:51,700 DEBUG DriverManagerConnectionProvider:93 - total checked-out connections: 0
15:47:51,700 DEBUG DriverManagerConnectionProvider:99 - using pooled JDBC connection, pool size: 0
15:47:51,700 DEBUG DriverManagerConnectionProvider:99 - using pooled JDBC connection, pool size: 0
15:47:51,700 DEBUG SQL:346 - insert into amigos (endereco, fone, cel, email, nome) values (?, ?, ?, ?, ?)
15:47:51,700 DEBUG SQL:346 - insert into amigos (endereco, fone, cel, email, nome) values (?, ?, ?, ?, ?)
15:47:51,700 DEBUG AbstractBatcher:424 - preparing statement
15:47:51,700 DEBUG AbstractBatcher:424 - preparing statement

o insert ta em branco…

furutani

O SQL é assim mesmo.
Verifica que o objeto amigo está populado certinho.

marciobarroso

Ae …

Vc precisa fazer assim :

Session session = HibernateUtil.getSession();
        Transaction t = session.beginTransaction();        
        
        Cliente luis = new Cliente();
        luis.setNome("Luis");

        session.saveOrUpdate(luis);

        t.commit();
        session.close();

Se vc não “commitar” a transação, o hibernate não persiste o objeto.

[ :smiley: ]

Criado 7 de abril de 2006
Ultima resposta 7 de abr. de 2006
Respostas 11
Participantes 3