Persistência com Hibernate

7 respostas
S

Galera, é urgente.
Seguinte, eu fiz essa classe aqui pra servir como session do hibernate. e agora queria persistir dados de uma outra classe(entity) chamada aluno, chamar os sets dps da commit().

Como eu faço nesse caso tipo, um beginTransaction e dps commit?

Aqui está meu HibernateUtil.

package br.com.caelum.vraptor.testes;

import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public class HibernateUtil
{
    private static SessionFactory sessionFactory;
    private static ServiceRegistry serviceRegistry;

    static
    {
        try
        {
//          Configuration configuration = new Configuration();
            Configuration configuration = new Configuration().configure();

            serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
            sessionFactory = configuration.buildSessionFactory(serviceRegistry);
        }
        catch (HibernateException he)
        {
            System.err.println("Error creating Session: " + he);
            throw new ExceptionInInitializerError(he);
        }
    }

    public static SessionFactory getSessionFactory()
    {
        return sessionFactory;
    } 
    
 
    Transaction tx = sessionFactory.beginTransaction();
    session.save(produto);
    tx.commit();
}

Essas 3 linhas ai do Transaction é que não funciona…

Queria algo q substituisse isso, lembrando q eu botaria os sets dos Alunos em cima. Obrigado!

7 Respostas

javaflex

O método beginTransaction() é da session. Não coloque esse código solto na classe senão nos confunde, pois não está fazendo assim né? Mostre o código real da próxima vez, e também especificando o retorno do que não funciona (mensagem de erro por exemplo).

Session sess = factory.openSession(); Transaction tx; try { tx = sess.beginTransaction(); //do some work ... tx.commit(); } catch (Exception e) { if (tx!=null) tx.rollback(); throw e; } finally { sess.close(); }
http://docs.jboss.org/hibernate/orm/3.3/api/org/hibernate/Session.html

S

javaflex:
O método beginTransaction() é da session. Não coloque esse código solto na classe senão nos confunde, pois não está fazendo assim né? Mostre o código real da próxima vez, e também especificando o retorno do que não funciona (mensagem de erro por exemplo).

Session sess = factory.openSession(); Transaction tx; try { tx = sess.beginTransaction(); //do some work ... tx.commit(); } catch (Exception e) { if (tx!=null) tx.rollback(); throw e; } finally { sess.close(); }
http://docs.jboss.org/hibernate/orm/3.3/api/org/hibernate/Session.html

Só essa classe ai serviria? É que eu n sei muito de hibernate, queria criar uma classe só pra abrir a sessão e depois persistir os dados no BD. Me ajuda por favor.

javaflex

Steam:
javaflex:
O método beginTransaction() é da session. Não coloque esse código solto na classe senão nos confunde, pois não está fazendo assim né? Mostre o código real da próxima vez, e também especificando o retorno do que não funciona (mensagem de erro por exemplo).

Session sess = factory.openSession(); Transaction tx; try { tx = sess.beginTransaction(); //do some work ... tx.commit(); } catch (Exception e) { if (tx!=null) tx.rollback(); throw e; } finally { sess.close(); }
http://docs.jboss.org/hibernate/orm/3.3/api/org/hibernate/Session.html

Só essa classe ai serviria? É que eu n sei muito de hibernate, queria criar uma classe só pra abrir a sessão e depois persistir os dados no BD. Me ajuda por favor.


Isso foi só um exemplo da documentação do hibernate em relacao ao que você falou inicialmente.

De resto dá uma olhada nessa apostila: http://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/ Ou pesquise sobre hibernate opensession SessionFactory

S

Isso dai ainda vou integrar com o VRaptor

javaflex

Não conheço VRaptor, aí já é outro assunto.

Apostila de VRaptor: http://www.caelum.com.br/curso/fj-28-vraptor-hibernate-ajax/
Documentação: http://vraptor.caelum.com.br/pt/
Apostila de Hibernate da própria Caelum: http://www.caelum.com.br/apostila-java-web/apendice-mais-hibernate/

S

Não conheço VRaptor, aí já é outro assunto.

Apostila de VRaptor: http://www.caelum.com.br/curso/fj-28-vraptor-hibernate-ajax/
Documentação: http://vraptor.caelum.com.br/pt/
Apostila de Hibernate da própria Caelum: http://www.caelum.com.br/apostila-java-web/apendice-mais-hibernate/

to utilizando essa apostila da caleum, tava seguindo os passos aqui porém a aapostila é muito antiga, tem métodos obsoletos ai. por isso estou procurando outras opções. obrigado de qualquer forma.

javaflex

Não conheço VRaptor, aí já é outro assunto.

Apostila de VRaptor: http://www.caelum.com.br/curso/fj-28-vraptor-hibernate-ajax/
Documentação: http://vraptor.caelum.com.br/pt/
Apostila de Hibernate da própria Caelum: http://www.caelum.com.br/apostila-java-web/apendice-mais-hibernate/

to utilizando essa apostila da caleum, tava seguindo os passos aqui porém a aapostila é muito antiga, tem métodos obsoletos ai. por isso estou procurando outras opções. obrigado de qualquer forma.
Entendi, achava que fosse sempre atual já que o VRaptor é deles, isso ajudaria a aumentar o uso.

Criado 27 de janeiro de 2013
Ultima resposta 28 de jan. de 2013
Respostas 7
Participantes 2