Hibernate não está inserindo no banco de dados

5 respostas
R

Olá

estou começando a mexer com Hibernate Annotations.
O meu problema é o seguinte.

Qdo mando inserir um registro no banco de dados (MySQL), ele não dá nenhum erro, me retorna um ID normalmente (auto-incremento feito pelo MySQL) só que não grava nada no banco. Só atualiza o auto-incremento.

Alguém pode me ajudar?

Obrigado.

5 Respostas

maquiavelbona

Estás realizando o commit? Qual o seu código?

Até!

R
import org.hibernate.Session;

public class AdicionaCoordenador {
	
	public static void main(String[] args) {
		HibernateFactory factory = new HibernateFactory();
		Session session = factory.getSession();
		
		Coordenador coordenador = new Coordenador();
		coordenador.setLogin("teste");
		coordenador.setNome("Teste do Hibernate");
		coordenador.setSenha("senha");
		
		session.save(coordenador);
		
		System.out.println(coordenador.getId());
		
		session.close();
		
	}

}
E o Coordenador.java
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Coordenador {
	
	@Id
	@GeneratedValue
	private long id;
	
	@Column(name = "nome", length=72)
	private String nome;
	
	@Column(name = "login", length = 16)
	private String login;
	
	@Column(name = "senha", length = 8)
	private String senha;
	
	public Coordenador() {
	}
	
	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 getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
gerdec

como o colega esta mencionando faça o commit

public class AdicionaCoordenador {  
       
     public static void main(String[] args) {  
         HibernateFactory factory = new HibernateFactory();  
         Session session = factory.getSession();  
           
         Coordenador coordenador = new Coordenador();  
         coordenador.setLogin("teste");  
         coordenador.setNome("Teste do Hibernate");  
         coordenador.setSenha("senha");  
          
        session.save(coordenador);
        session.commit();  
          
         System.out.println(coordenador.getId());  
           
         session.close();  
         
    }  
   
 }  

espero ter ajudado
R

Ok.

Inseri o commit e funcionou.

Obrigado maquiavelbona e gerdec

L

pode usar tbm um Transaction…
assim pode testar se o commit deu certo…

public class AdicionaCoordenador {     
         
     public static void main(String[] args) {     
         HibernateFactory factory = new HibernateFactory();     
         Session session = factory.getSession();     
         Transaction t = session.beginTransaction();
             
         Coordenador coordenador = new Coordenador();     
         coordenador.setLogin("teste");     
         coordenador.setNome("Teste do Hibernate");     
         coordenador.setSenha("senha");     
             
        session.save(coordenador);   
                     
         System.out.println(coordenador.getId());     
         
        try{
             t.commit();
        }catch(Exception e){
              t.rollback();
         }

         System.out.println("Commit = "+t.wasCommited());

         session.close();     
           
    }     
     
}
Criado 7 de fevereiro de 2008
Ultima resposta 7 de fev. de 2008
Respostas 5
Participantes 4