Hibernate and FireBird!

2 respostas
V

oi Pessoal !!!

Estou iniciando com o Hibernate 3.0 e estou com um problema estranho :::

Configurei o hibernate.properties p/ o FireBird

Interbase

hibernate.dialect org.hibernate.dialect.InterbaseDialect

hibernate.connection.driver_class org.firebirdsql.jdbc.FBDriver
hibernate.connection.url jdbc:firebirdsql:127.0.0.1/3050:d:/sistemas/BancoTeste.gdb
hibernate.connection.username sysdba
hibernate.connection.password masterkey

Classe modelo

import javax.persistence.*;

@Entity public class Produto {

private Long id;

private String nome
@Id(generate = GeneratorType.AUTO)
public Long getId() {
	return id;
}

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

@Column(name="nome" , nullable=true, length=50)
public String getNome() {
	return nome;
}

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

}

Testei uma classe geratabela ::

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class GeraTabelas {

public static void main(String[] args) {
		AnnotationConfiguration cfg = new AnnotationConfiguration();
	    cfg.addAnnotatedClass(Produto.class);
	
	    new SchemaExport( cfg ).create(true, true);
	}

}

FUNCIONOU PERFEITAMENTE CONECTOU E CRIOU A TABELA !!!

mas qdo rodo a classe p/ inserir um registro não dá msg de erro mas também não insere…Coloquei um registro na mao p/ ver se está conectando e conseguindo ler e funcionou normalmente

Alguém sabe se tem alguma configuração que eu tenha esquecido !!!

Muito estranho porque cria tabela consegue dar um select mas nao da insert

codigo da classe testeInsert

Produto p = new Produto();
	p.setNome("bala juquinha");
	p.setDescricao("bala juquinha");
	p.setPreco(2D);
	
	AnnotationConfiguration cfg = new AnnotationConfiguration();
	cfg.addAnnotatedClass(Produto.class);
	Session s = cfg.buildSessionFactory().openSession();
	s.save(p);
	s.flush();

Se alguém souber agradeço !!!

Abraço, Valmir :cry:

2 Respostas

F

Session s = cfg.buildSessionFactory().openSession(); s.save(p); s.flush();

tente dessa forma:

Session sess = factory.openSession();
Transaction tx = null;
try {
    tx = sess.beginTransaction();

    sess.save(p);

    tx.commit();
}
catch (RuntimeException e) {
    if (tx != null) tx.rollback();
    throw e
}
finally {
    sess.close();
}

Trecho retirado de:
http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#transactions-basics

V

Obrigado Fabricio, funcionou !!!

Criado 1 de maio de 2005
Ultima resposta 1 de mai. de 2005
Respostas 2
Participantes 2