Hibernate - inserção de dados no Oracle

3 respostas
X

estou tentando inserir dados em uma tabela do oracle através do hibernate e a seguinte mensagem é exibida no console do Eclipse:

Hibernate:
select
hibernate_sequence.nextval
from
dual

Ao conferir a tabela, nenhum dado foi inserido. Os códigos que estou utilizando são os seguintes:

=================================================================
import org.hibernate.Session;

public class AdicionaProduto {

public static void main(String[] args){
	
	Produto p = new Produto();
	p.setNome("PenDrive");
	p.setDescricao("produto de armazenamento portatil");
	p.setPreco(100.5);
	
	Session session = new HibernateUtil().getSession();
	session.save(p);
			
	System.out.println("ID do produto: " + p.getId());
	
	session.close();
	
}

}

=======================================================

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {

private static SessionFactory factory;

static {
	AnnotationConfiguration cfg = new AnnotationConfiguration();
	cfg.addAnnotatedClass(Produto.class);
	factory = cfg.buildSessionFactory();
	
}

public Session getSession(){
	return factory.openSession();
}

}

================================================================

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

@Entity
public class Produto {

@Id
@GeneratedValue
private Long id;
private String nome;
private String descricao;
private Double preco;

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

public Long getId() {
	return id;
}

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

public String getNome() {
	return nome;
}

public void setDescricao(String descricao) {
	this.descricao = descricao;
}

public String getDescricao() {
	return descricao;
}

public void setPreco(Double preco) {
	this.preco = preco;
}

public Double getPreco() {
	return preco;
}

}

================================================================

Alguém sabe por que o hibernate não consegue inserir os dados ?

3 Respostas

Polverini

use sempre a tag [code] para inserir seus códigos.

está faltando o transaction.comit (pacote do hibernate) apos o session.save()

romarcio

Você criou as sequência no Oracle?
Tem que dizer no mapeamento qual a sequência vai ser usada.

X

Muito obrigado a todos pela atenção.
Problema resolvido. Estava faltando declarar os seguintes comandos abaixo referentes a transação:

Session session = new HibernateUtil().getSession();
Transaction transaction = session.getTransaction();

transaction.begin();

session.save§;

transaction.commit();
Criado 28 de fevereiro de 2011
Ultima resposta 1 de mar. de 2011
Respostas 3
Participantes 3