Quantcast
Channel: GUJ - Tópicos com a tag hibernate
Viewing all articles
Browse latest Browse all 759

Erro salvar hibernate jsf chave estrangeira

$
0
0

@Bruno.Silveira escreveu:

Sou iniciante em Hibernate e jsf e estou com o seguinte erro: o Cenário é o seguinte tenho 2 tabelas usuários e perfis os meus perfis funcionam normalmente porem não consigo salvar meus usuários, aparentemente o meu código não esta localizando a minha chave estrangeira seguem abaixo o log de erro e meu código, já testei de várias forma fiz diversas alterações porem não consigo fazer com que minha classe DAOTeste salve o registro.

Erro:

INFO: HHH000037: Columns: [us_login, us_senha, perfil_per_id, us_id, us_situação, us_nome, us_ramal, us_email, us_obsevacao]
Hibernate: select perfil0_.per_id as per_id1_0_, perfil0_.per_descricao as per_desc2_0_ from Perfil perfil0_ where perfil0_.per_id=?

classe usuario.java

package br.com.teste.domain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;

import com.sun.istack.internal.NotNull;

@Entity
@Table(name="Usuario")
@NamedQueries({@NamedQuery(name="Usuario.listar",query="SELECT usuario FROM Usuario usuario"),
@NamedQuery(name="Usuario.buscarPorCodigo",query="SELECT usuario FROM Usuario usuario WHERE usuario.id=:id"),
	
})

public class Usuario {
	
	@Id
	@Column (name="us_id")
	@GeneratedValue(strategy=GenerationType.AUTO)
	
	private Long id;
	
	@Column (name="us_nome" ,length=45,nullable=false)	
	@NotEmpty(message="Informe seu nome!")
	private String nome;
	
	@Column (name="us_email",length=45,nullable=false)
	@NotEmpty(message="Informe seu e-mail!")
	@Email(message="E-mail inválido!")
	private String email;
	
	@Column (name="us_login",length=45,nullable=false)
	@NotEmpty(message="Informe seu login!")
	private String login;
	
	@Column (name="us_senha",length=16,nullable=false)
	@NotEmpty(message="Informe sua senha!")
	private String senha;
	
	@Column (name="us_ramal")	
	@NotEmpty(message="Informe seu ramal!")
	private int ramal;
			
	@Column (name="us_obsevacao",length=45)	
	private String obsevacao;
	
	@Column (name="us_situação",nullable=false)	
	@NotEmpty(message="Informe uma situação!")
	@NotNull
	private Boolean situação;
	
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="Perfil_per_id",referencedColumnName="per_id",nullable=false)
	@NotEmpty
	private Perfil perfil;
	
	
	public Perfil getPerfil() {
		return perfil;
	}
	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}
	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 getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	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;
	}
	public int getRamal() {
		return ramal;
	}
	public void setRamal(int ramal) {
		this.ramal = ramal;
	}
	public String getObsevacao() {
		return obsevacao;
	}
	public void setObsevacao(String obsevacao) {
		this.obsevacao = obsevacao;
	}

	public Boolean getSituação() {
		return situação;
	}
	public void setSituação(Boolean situação) {
		this.situação = situação;
	}
	@Override
	public String toString() {
		return "Usuario [id=" + id + ", nome=" + nome + ", email=" + email + ", login=" + login + ", senha=" + senha
				+ ", ramal=" + ramal + ", obsevacao=" + obsevacao + ", situação=" + situação + ", perfil=" + perfil
				+ "]";
	}
	
	
	
	
	

}

classe usuarioDAO teste (esta comentado pois deu erro sem os comentários ai decidi testar o método de forma isolada)

package br.com.teste.test;

//import java.util.List;

//import org.junit.Ignore;
import org.junit.Test;

import br.com.teste.DAO.PerfilDAO;
import br.com.teste.DAO.UsuarioDAO;
import br.com.teste.domain.Perfil;
import br.com.teste.domain.Usuario;

public class UsuarioDAOTest {

	@Test
	

	public void salvar() throws Exception {

		PerfilDAO dao = new PerfilDAO();
		Perfil p2 = dao.buscarPorCodigo(8L);
		

		Usuario u1 = new Usuario();

		u1.setNome("Adriano");
		u1.setEmail("Adriano@teste.com.br");
		u1.setLogin("adriano");
		u1.setObsevacao("teste1");
		u1.setPerfil(p2);
		u1.setRamal(95619);
		u1.setSenha("456");
		u1.setSituação(true);
	

		UsuarioDAO udao = new UsuarioDAO();

		udao.salvar(u1);
		

	}

//	@Test
//	@Ignore
//	public void listar() {
//		UsuarioDAO dao = new UsuarioDAO();
//		List<Usuario> usuarios = dao.listar();
//
//		for (Usuario usuario : usuarios) {
//
//			System.out.println(usuario);
//
//		}
//
//	}
//	
//	@Test
//	@Ignore
//	
//	
//	public void buscarPorCodigo() {
//
//		UsuarioDAO dao = new UsuarioDAO();
//		Usuario p1 = dao.buscarPorCodigo(6L);
//
//		System.out.println(p1);
//
//	}
//
//	@Test
//	@Ignore
//	public void excluir() throws Exception {
//
//		UsuarioDAO dao = new UsuarioDAO();
//		Usuario usuario = dao.buscarPorCodigo(6L);
//
//		
//			dao.excluir(usuario);
//		
//	}
//	
//	@Test
//	@Ignore
//	public void editar() throws Exception {
//		PerfilDAO dao = new PerfilDAO();
//		Perfil p2 = dao.buscarPorCodigo(9L);
//		
//		UsuarioDAO udao = new UsuarioDAO();
//		Usuario usuario = udao.buscarPorCodigo(4L);
//		
//		usuario.setNome("Arlindo");
//		usuario.setEmail("Arlindo@teste.com.br");
//		usuario.setLogin("arlindo");
//		usuario.setObsevacao("teste10");
//		usuario.setPerfil(p2);
//		usuario.setRamal(95619);
//		usuario.setSenha("123");
//		usuario.setSituação(true);
//		
//			udao.editar(usuario);
//		
//	}
//	
}

classe usuariodao

package br.com.teste.DAO;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.teste.domain.Perfil;
import br.com.teste.domain.Usuario;
import br.com.teste.util.HibernateUtil;

public class UsuarioDAO {

	public void salvar(Usuario usuario) throws Exception {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		Transaction transacao = null;// inicia transacao como nula

		try {

			transacao = sessao.beginTransaction();// abrindo a transacao
			sessao.save(usuario);// salva dados do perfil
			transacao.commit();// confirmando transacao

		} catch (RuntimeException ex) {
			if (transacao != null) {
				transacao.rollback();

			}
			throw ex;
		}

		finally {
			sessao.close();
		}

	}

	@SuppressWarnings("unchecked")
	public List<Usuario> listar() {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		List<Usuario> usuarios = null;// inicia transacao como nula

		try {

			Query consulta = sessao.getNamedQuery("Usuario.listar");
			usuarios = consulta.list();

		} catch (RuntimeException ex) {

			throw ex;
		}

		finally {
			sessao.close();
		}

		return usuarios;

	}

	public Usuario buscarPorCodigo(Long id) {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		Usuario usuario = null;// inicia transacao como nula

		try {

			Query consulta = sessao.getNamedQuery("Usuario.buscarPorCodigo");
			consulta.setLong("Id", id);
			usuario = (Usuario) consulta.uniqueResult();

		} catch (RuntimeException ex) {

			throw ex;
		}

		finally {
			sessao.close();
		}

		return usuario;

	}

	public void excluir(Usuario usuario) throws Exception {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		Transaction transacao = null;// inicia transacao como nula

		try {

			transacao = sessao.beginTransaction();// abrindo a transacao
			sessao.delete(usuario);// salva dados do perfil
			transacao.commit();// confirmando transacao

		} catch (RuntimeException ex) {
			if (transacao != null) {
				transacao.rollback();

			}
			throw ex;
		}

		finally {
			sessao.close();
		}

	}
	
	
	
	public void editar(Perfil perfil) throws Exception {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		Transaction transacao = null;// inicia transacao como nula

		try {

			transacao = sessao.beginTransaction();// abrindo a transacao
			
			
			sessao.update(perfil);// salva dados do perfil
			transacao.commit();// confirmando transacao

		} catch (RuntimeException ex) {
			if (transacao != null) {
				transacao.rollback();

			}
			throw ex;
		}

		finally {
			sessao.close();
		}

	}
	
	public void editar(Usuario usuario) throws Exception {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		Transaction transacao = null;// inicia transacao como nula

		try {

			transacao = sessao.beginTransaction();// abrindo a transacao
			
			
			sessao.update(usuario);// salva dados do perfil
			transacao.commit();// confirmando transacao

		} catch (RuntimeException ex) {
			if (transacao != null) {
				transacao.rollback();

			}
			throw ex;
		}

		finally {
			sessao.close();
		}

	}



}

****************classe usuárioBean************************

package br.com.teste.Bean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;


import br.com.teste.util.JSFUtil;
import br.com.teste.DAO.PerfilDAO;
import br.com.teste.DAO.UsuarioDAO;
import br.com.teste.domain.Perfil;
import br.com.teste.domain.Usuario;

@ManagedBean(name = "MBUsuario")
@ViewScoped
public class UsuarioBean {
	private Usuario usuario;

	 private ArrayList<Usuario>itens;
	 private ArrayList<Usuario>itensFiltrados;
	 private String acao;
	 private Long codigo;
	 private List<Perfil>listaPerfil;
	 
	 
	 public void setListaPerfil(List<Perfil> listaPerfil) {
		this.listaPerfil = listaPerfil;
	}
	 
	 public List<Perfil> getListaPerfil() {
		return listaPerfil;
	}
	 
	 public Long getCodigo() {
		return codigo;
	}
	 
	 
	 public void setCodigo(Long codigo) {
		this.codigo = codigo;
	}
	 
	 
	 public String getAcao() {
		return acao;
	}
	 
	 
	 public void setAcao(String acao) {
		this.acao = acao;
	}
	
	public Usuario getUsuario() {
		
		return usuario;
	}

	//
	public void setProduto(Usuario usuario) {
		this.usuario = usuario;
	}



	 public ArrayList<Usuario> getItens() {
	 return itens;
	 }
	
	 public void setItens(ArrayList<Usuario> itens) {
	 this.itens = itens;
	 }
	
	
	 public ArrayList<Usuario> getItensFiltrados() {
	 return itensFiltrados;
	 }
	
	 public void setItensFiltrados(ArrayList<Usuario> itensFiltrados) {
	 this.itensFiltrados = itensFiltrados;
	 }

	// @PostConstruct
	 public void prepararPesquisa(){
		
	 try {
		 UsuarioDAO fdao = new UsuarioDAO();
	 itens = (ArrayList<Usuario>) fdao.listar();
	
	 } catch (RuntimeException e) {
	 JSFUtil.adicionarMensagemErro("ex.getMessage()");
	 e.printStackTrace();
	 }
	
	 }
	 
	 
	 public void carregarCadastro(){

		 try {
		     
			
			 if(codigo != null){
				
				 
				 UsuarioDAO fdao = new UsuarioDAO();	
			
				 usuario = fdao.buscarPorCodigo(codigo);
				 
			 }
			 else
				 {
				 usuario = new Usuario();
				
			 }
			 
			 PerfilDAO dao = new PerfilDAO();
			 listaPerfil = dao.listar();
		
		 } catch (RuntimeException e) {
		 JSFUtil.adicionarMensagemErro("ex.getMessage()");
		 e.printStackTrace();
		 }
		
		 } 
	 

	 public void novo(){
		 usuario = new Usuario();
	 }

	public void salvar() {

		try {
			UsuarioDAO fdao = new UsuarioDAO();
			fdao.salvar(usuario);
			
			usuario = new Usuario();

			

			JSFUtil.adicionarMensagemSucesso("Produto salvo com sucesso!");

		} catch (Exception e) {
			JSFUtil.adicionarMensagemErro("ex.getMessage()");
			e.printStackTrace();
		}
	}

	
	
	 public void excluir(){
	 try {
		 UsuarioDAO fdao = new UsuarioDAO();
	 fdao.excluir(usuario);
	
	
	
	 JSFUtil.adicionarMensagemSucesso("Produto excluido com sucesso!");
	
	 } catch (Exception e) {
	 JSFUtil.adicionarMensagemErro("ex.getMessage()");
	 e.printStackTrace();
	 }
	 }
	
	
	
	
	
	 public void editar(){
	 try {
		 UsuarioDAO fdao = new UsuarioDAO();
	 fdao.editar(usuario);
	
	
	 JSFUtil.adicionarMensagemSucesso("Produto editado com sucesso!");
	
	 } catch (Exception e) {
	 JSFUtil.adicionarMensagemErro("ex.getMessage()");
	 e.printStackTrace();
	 }
	 }
}

*********** classe perfildao ********************

package br.com.teste.DAO;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.teste.domain.Perfil;
import br.com.teste.util.HibernateUtil;

public class PerfilDAO {

	public void salvar(Perfil perfil) throws Exception {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		Transaction transacao = null;// inicia transacao como nula

		try {

			transacao = sessao.beginTransaction();// abrindo a transacao
			sessao.save(perfil);// salva dados do perfil
			transacao.commit();// confirmando transacao

		} catch (RuntimeException ex) {
			if (transacao != null) {
				transacao.rollback();

			}
			throw ex;
		}

		finally {
			sessao.close();
		}

	}

	@SuppressWarnings("unchecked")
	public List<Perfil> listar() {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		List<Perfil> perfis = null;// inicia transacao como nula

		try {

			Query consulta = sessao.getNamedQuery("Perfil.listar");
			perfis = consulta.list();

		} catch (RuntimeException ex) {

			throw ex;
		}

		finally {
			sessao.close();
		}

		return perfis;

	}

	public Perfil buscarPorCodigo(Long id) {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		Perfil perfil = null;// inicia transacao como nula

		try {

			Query consulta = sessao.getNamedQuery("Perfil.buscarPorCodigo");
			consulta.setLong("Id", id);
			perfil = (Perfil) consulta.uniqueResult();

		} catch (RuntimeException ex) {

			throw ex;
		}

		finally {
			sessao.close();
		}

		return perfil;

	}

	public void excluir(Perfil perfil) throws Exception {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		Transaction transacao = null;// inicia transacao como nula

		try {

			transacao = sessao.beginTransaction();// abrindo a transacao
			sessao.delete(perfil);// salva dados do perfil
			transacao.commit();// confirmando transacao

		} catch (RuntimeException ex) {
			if (transacao != null) {
				transacao.rollback();

			}
			throw ex;
		}

		finally {
			sessao.close();
		}

	}
	
	
	
	public void editar(Perfil perfil) throws Exception {

		Session sessao = HibernateUtil.getSessionFactory().openSession();

		Transaction transacao = null;// inicia transacao como nula

		try {

			transacao = sessao.beginTransaction();// abrindo a transacao
			
			
			sessao.update(perfil);// salva dados do perfil
			transacao.commit();// confirmando transacao

		} catch (RuntimeException ex) {
			if (transacao != null) {
				transacao.rollback();

			}
			throw ex;
		}

		finally {
			sessao.close();
		}

	}


}


*************** configuração hibernate ********************

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- configuracao de Conexao com o babco de dados -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/testepatrimonial</property>
        <property name="connection.username">root</property>
        <property name="connection.password">1234</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

        <!-- gerenciamento -->
        <property name="current_session_context_class">thread</property>

        <!-- desabilita o cache  -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

        <!-- exige comandos sql -->
        <property name="show_sql">true</property>

        <!-- criacao das tabelas -->
        <property name="hbm2ddl.auto">update</property>
        <property name="hbm2ddl.auto">validate</property>
       
        
     	<mapping class="br.com.teste.domain.Usuario"/>
       <mapping class="br.com.teste.domain.Perfil"/>
       
       

      
      

    </session-factory>

</hibernate-configuration>

Mensagens: 3

Participantes: 2

Ler tópico completo


Viewing all articles
Browse latest Browse all 759

Trending Articles


UPDATE SC IDOL: TWO BECOME ONE


FORECLOSURE OF REAL ESTATE MORTGAGE


Girasoles para colorear


Presence Quotes – Positive Quotes


EASY COME, EASY GO


Long Distance Relationship Tagalog Love Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


FORTUITOUS EVENT


Vimeo 10.7.1 by Vimeo.com, Inc.


Pokemon para colorear


Sapos para colorear


Smile Quotes


Tiwala Quotes and Selos Quotes Collections


Love with Heart Breaking Quotes


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Maganda Quotes – tagalog Quotes – Inggit Quotes


KASAMBAHAY BILL IN THE HOUSE



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>