Hibernate, exercicio da apostila da Caelum

5 respostas
E

Boa tarde pessoal … to refazendo os exercicios da apostila do fj21 da caelum, e to no capitulo do hibernate. O exercicio 16.16 é de adicionar um registro no banco, fiz exatamente como ta na apostila, ele mostra a saida esperada no console, mas não adiciona nada, alguem pode me ajudar? Vou postar ai embaixo os codigos que escrevi copiando da apostila. valeu.

package br.com.caelum.hibernate;

import javax.persistence.*;
@Entity
public class Produto {
	@Id
	@GeneratedValue
	private Long id;
	private String nome;
	private String descricao;
	private Double preco;
	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 String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public Double getPreco() {
		return preco;
	}
	public void setPreco(Double preco) {
		this.preco = preco;
	}
}
package br.com.caelum.hibernate;

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();
		
	}
}
package br.com.caelum.hibernate;

import org.hibernate.Session;

public class AdicionaProduto {

	public static void main(String[] args) {
		Produto p = new Produto();
		p.setNome("Caneta");
		p.setDescricao("esferografica bic");
		p.setPreco(12.85);
		
		Session session = new HibernateUtil().getSession();
		session.save(p);
		System.out.println(p.getNome() + "  -  "  + p.getDescricao());
		session.close();
	}

}

5 Respostas

E

?

colored
Session session = new HibernateUtil().getSession();

session.beginTransaction(); / Aki

session.save§;

System.out.println(p.getNome() + "  -  "  + p.getDescricao());

session.getTransaction().commit; // i Aki

session.close();

Eh mais o menos assim os metodos da uma olhada lá ;D

E

Cara, muito obrigado mano, era isso mesmo, só que na apostila que eu tenho (fiz o curso la a alguns dias) ta do jeito que eu tinha colocado, não tem o beginTransaction e nem o commit, engraçado é que eu lembro de no curso um amigo ter perguntado se não precisava de commit e o instrutor disse que não, e lembro de ter funcionado sem. Será problema de versão ?

Valeu :smiley:

mjmendes

Pode ser que lá na Caelum a conecção estava configurada com autocommit, ou seja, mandou salvar dá o commit na hora, dependendo do banco e do tipo de acesso é padrão ou não.

E

é verdade …

muito obrigado a todos pela ajuda

Criado 20 de março de 2009
Ultima resposta 20 de mar. de 2009
Respostas 5
Participantes 3