Erro no hibernate nao salva o objeto

2 respostas
B

estou fazendo a mminha primeira aplicação usando o hibernate na hora de testar a inha aplicação ele diz que na transaçãoa tual ele naun pode salvar o objeto da esse erro que esta no console do meu eclipse

12:38:20,796  INFO SessionFactoryObjectFactory:105 - Not binding factory to JNDI, no JNDI name configured

Exception in thread main org.hibernate.HibernateException: save is not valid without active transaction

at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:338)

at $Proxy8.save(Unknown Source)

at Persistencia.ClienteDAO.Salvar(ClienteDAO.java:19)

at Loader.App.main(App.java:19)

o meu hibernateutil é esse

package Persistencia;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.*;

public class HibernateUtil {

	
	private static final SessionFactory sessionFactory;
	static {
	try {
	sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
	} catch (Throwable ex) {
	System.err.println("Initial SessionFactory creation failed." + ex);
	throw new ExceptionInInitializerError(ex);
	}
	}
	public static SessionFactory getSessionFactory() {
	return sessionFactory;
	}
}

o meu dao é esse

package Persistencia;


import org.hibernate.Session;
import Bean.Pessoa;
import Persistencia.HibernateUtil;

public class ClienteDAO {
 
	private Session session;

	public ClienteDAO() {}
	
	public void Salvar(Pessoa cliente){
		
		session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.save(cliente);
		session.getTransaction().commit();
	}
	
	
	
}

e o meu bean

package Bean;


import java.io.Serializable;
import java.util.Set;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;




@Entity
@Table(name = "cliente")
public class Pessoa implements Serializable {
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;

	@Column( name="nome_cliente",length=255)
	private String nome;
	
	@Column( name="idade")
	private int idade;


	public Pessoa() {}/*cosntrutor default*/
	
	
	public Long getId() {
		return id;
	}


	public void setId(Long id) {
		this.id = id;
	}


	public String getNome() {
		return nome;
	}


	public void setNome(String nome) {
		this.nome = nome;
	}


	public int getIdade() {
		return idade;
	}


	public void setIdade(int idade) {
		this.idade = idade;
	}
	
	
}

alguem sabe me dizer onde esta o emu erro é na hora de crair a session do hibernete ou o que seria

2 Respostas

Marky.Vasconcelos

voce esqueceu de abrir a transação

session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.save(cliente); session.getTransaction().commit();

B

valeu cara eu testei aqui e funcionou muito obrigado

Criado 4 de outubro de 2008
Ultima resposta 4 de out. de 2008
Respostas 2
Participantes 2