Erro mapeamento

4 respostas
M

Estou estudando pelo livro Programacao Java para Web mas estou me deparando com o seguinte erro, alguem tem idéia do que seria??

HTTP Status 500 - javax.servlet.ServletException: org.hibernate.MappingException: Unknown entity: financeiro.conta.Conta

type Exception report

message javax.servlet.ServletException: org.hibernate.MappingException: Unknown entity: financeiro.conta.Conta

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax.servlet.ServletException: org.hibernate.MappingException: Unknown entity: financeiro.conta.Conta
	financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:76)

root cause

javax.servlet.ServletException: org.hibernate.MappingException: Unknown entity: financeiro.conta.Conta
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
Minha classe Conta:
package financeiro.conta;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;

import financeiro.usuario.Usuario;

@Entity
@Table(name = "conta_bancaria")
public class Conta implements Serializable {
	@Id
	@GeneratedValue
	@Column(name="cod_conta")
	private Integer conta;
	
	@ManyToOne
	@OnDelete(action=OnDeleteAction.CASCADE)
	@JoinColumn(name="cod_usuario", nullable=false)
	private Usuario usuario;
	
	@Column(name="des_conta")
	private String descricao;
	
	@Column(name="dat_cadastro",nullable=false,updatable=false)
	private Date dataCadastro;
	
	@Column(name="saldo_inicial")
	private float saldoInicial;
	
	@Column(name="favorita")
	private boolean favorita;

	public Integer getConta() {
		return conta;
	}

	public void setConta(Integer conta) {
		this.conta = conta;
	}

	public Usuario getUsuario() {
		return usuario;
	}

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

	public String getDescricao() {
		return descricao;
	}

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

	public Date getDataCadastro() {
		return dataCadastro;
	}

	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	public float getSaldoInicial() {
		return saldoInicial;
	}

	public void setSaldoInicial(float saldoInicial) {
		this.saldoInicial = saldoInicial;
	}

	public boolean isFavorita() {
		return favorita;
	}

	public void setFavorita(boolean favorita) {
		this.favorita = favorita;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((conta == null) ? 0 : conta.hashCode());
		result = prime * result + ((dataCadastro == null) ? 0 : dataCadastro.hashCode());
		result = prime * result + ((descricao == null) ? 0 : descricao.hashCode());
		result = prime * result + (favorita ? 1231 : 1237);
		result = prime * result + ((usuario == null) ? 0 : usuario.hashCode());
		result = prime * result + Float.floatToIntBits(saldoInicial);
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Conta other = (Conta) obj;
		if (conta == null) {
			if (other.conta != null)
				return false;
		} else if (!conta.equals(other.conta))
			return false;
		if (dataCadastro == null) {
			if (other.dataCadastro != null)
				return false;
		} else if (!dataCadastro.equals(other.dataCadastro))
			return false;
		if (descricao == null) {
			if (other.descricao != null)
				return false;
		} else if (!descricao.equals(other.descricao))
			return false;
		if (favorita != other.favorita)
			return false;
		if (usuario == null) {
			if (other.usuario != null)
				return false;
		} else if (!usuario.equals(other.usuario))
			return false;
		if (Float.floatToIntBits(saldoInicial) != Float.floatToIntBits(other.saldoInicial))
			return false;
		return true;
	}
	
}

Obrigado.

4 Respostas

g4j

Pelo código que postou está tudo ok. Como está organizada a estrutura do projeto?

Rafael_Guerreiro

"org.hibernate.MappingException: Unknown entity"
Ou seja, por mais que você tenha colocado a anotação @Entity, você precisa dizer para o Hibernate que vc vai usar essa classe…

Mostre as suas configs do hibernate…

M
a config do hibernate, realmente não está mapeada a classe, amanhã eu testo e respondo se funcionou.....
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN">
-<hibernate-configuration>
	-<session-factory>
		<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		<property name="connection.datasource">java:/comp/env/jdbc/FinanceiroDB</property>
		<property name="current_session_context_class">thread</property><property name="hbm2ddl.auto">update</property>
		<mapping class="financeiro.usuario.Usuario"/>
	</session-factory>
</hibernate-configuration>
M

realmente faltou mapear no config do hibernate! Agora funcionou, valeu pessoal.

Criado 9 de maio de 2013
Ultima resposta 13 de mai. de 2013
Respostas 4
Participantes 3