Instanciando Session

1 resposta
Sleipbr

Alguém pode me explicar esse trecho de código ?

Session sessao = new AnnotationConfiguration().configure().buildSessionFactory().openSession(); //Iniciando uma nova sessão Transaction transaction = sessao.beginTransaction();

1 Resposta

thiago_dias

Vamos por partes…

new AnnotationConfiguration().configure().buildSessionFactory() - Aqui é construída uma fábrica de sessões com base nas classes anotadas com @entity
new AnnotationConfiguration().configure().buildSessionFactory().openSession() - Com a SessionFactory criada, agora é aberta uma sessão para executar operações no bd.
sessao.beginTransaction() - Na sessão é iniciada uma transação, ou seja, se algo der errado na operação, é possível desfazer (rollback).

Para ficar mais claro podemos desmembrar o código e adicionar algumas coisas…

SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
     Session session = sessionFactory.openSession();  

      //Iniciando uma nova sessão   
        Transaction transaction = sessao.beginTransaction();

     try{      
        //Agora podemos salvar ou realizar alguma operação que necessite de transação
        //Suponha que temos a entidade Cliente e queremos salvá-la
        session.save(cliente);

        //Se der tudo certo
        transaction.commit();
     
     } catch(HibernateException e){
        //Se ocorrer algum erro no caminho
        transaction.rollback();
        e.printstacktrace();
     }

Abrs

Criado 19 de outubro de 2012
Ultima resposta 19 de out. de 2012
Respostas 1
Participantes 2