[Resolvido] Hibernate não salva

Boa noite!

Estou tentando fazer um trabalho, e o hibernate não está salvando os dados. Ele não apresenta erro ou qualquer traço. Apenas não conclui o processo. Irei tentar explicar melhor:

Tenho a seguinte classe que também é uma @Entity

package controller;

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

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.FacesContext;
import javax.persistence.Column;
import javax.persistence.Entity;

import dao.ChatDao;

import observer.Objeto;
import observer.Observador;
import model.Usuario;

@Entity
public class Chat implements Objeto {

	@Column(name = "usuario_origem")
	private UsuarioBean usuarioOrigem;
	@Column(name = "usuario_destino")
	private UsuarioBean usuarioDestino;
	@Column(name = "data_mensagem")
	private Date dataHoraMensagem;
	@Column(name = "mensagem")
	private String mensagemPublica;
	@Column(name = "mensagem")
	private String mensagemPrivada;

	private List<Observador> usuarioConectado;
	private static Chat instancia;
	
	@ManagedProperty(value = "#{usuarioBean}")
	private UsuarioBean usuarioBean;
	
	public Chat(){
		this.usuarioConectado = new ArrayList<Observador>();
	}

	public UsuarioBean getUsuarioOrigem() {
		return usuarioOrigem;
	}

	public void setUsuarioOrigem(UsuarioBean usuarioOrigem) {
		this.usuarioOrigem = usuarioOrigem;
	}

	public UsuarioBean getUsuarioDestino() {
		return usuarioDestino;
	}

	public void setUsuarioDestino(UsuarioBean usuarioDestino) {
		this.usuarioDestino = usuarioDestino;
	}	
	public static Chat getInstancia(){
		if( instancia == null){
			instancia = new Chat();
		} 
		return instancia;
	}
	
	
	public String getMensagemPrivada() {
		return mensagemPrivada;
	}
	
	public void setMensagemPrivada(String mensagemPrivada) {
		this.mensagemPrivada = this.usuarioOrigem + " para " + this.usuarioDestino + " : " +  mensagemPrivada;

		Chat c = new Chat();
			 c.setUsuarioOrigem(usuarioOrigem);
			 c.setUsuarioDestino(usuarioDestino);
			 c.setMensagemPrivada(mensagemPrivada);
			 c.setDataHoraMensagem(new Date());
			 
			 System.out.println(c.getUsuarioOrigem());
			 System.out.println(c.getUsuarioDestino());
			 
		ChatDao cdao = new ChatDao();
				cdao.inserirMensagemPrivada(c);
	}
	
	public String getMensagemPublica() {
		return mensagemPublica;
	}
	public void setMensagemPublica(String mensagemPublica) {
		this.mensagemPublica = mensagemPublica;
		notificarObservadores();
	}
	
	public List<Observador> getUsuarioConectado() {
		return usuarioConectado;
	}

	public Date getDataHoraMensagem() {
		return dataHoraMensagem;
	}

	public void setDataHoraMensagem(Date dataHoraMensagem) {
		this.dataHoraMensagem = dataHoraMensagem;
	}

	@Override
	public void adicionarObservador(UsuarioBean usuarioBean) {
		this.usuarioConectado.add(usuarioBean);
		
	}

	@Override
	public void removerObservador(UsuarioBean usuarioBean) {
		this.usuarioConectado.remove(usuarioBean);
		
	}

	@Override
	public void notificarObservadores() {
		for( Observador observador : this.usuarioConectado){
			observador.atualizarMensagem(this.usuarioOrigem + this.mensagemPublica );			
		}
	}
	
}

Dentro do método estou criando um novo objeto dela para ser salvo, pois essa classe é instanciada por outra através do Singleton, onde permanece aberta.

	public void setMensagemPrivada(String mensagemPrivada) {
		this.mensagemPrivada = this.usuarioOrigem + " para " + this.usuarioDestino + " : " +  mensagemPrivada;

		Chat c = new Chat();
			 c.setUsuarioOrigem(usuarioOrigem);
			 c.setUsuarioDestino(usuarioDestino);
			 c.setMensagemPrivada(mensagemPrivada);
			 c.setDataHoraMensagem(new Date());
			 
			 System.out.println(c.getUsuarioOrigem());
			 System.out.println(c.getUsuarioDestino());
			 
		ChatDao cdao = new ChatDao();
				cdao.inserirMensagemPrivada(c);
	}

Dao:

package dao;

import org.hibernate.SQLQuery;
import org.hibernate.Session;

import controller.Chat;

public class ChatDao {

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

	public void comitar() {
		sessao.getTransaction().commit();
		sessao.close();
	}

	public void inserirMensagemPrivada(Chat c) {
		sessao.beginTransaction();
		sessao.save(c);
		comitar();
	}

}

Não ocorre absolutamente nada! Erro/Warning/Reza de pai de santo. Estou deixando passar algo despercebido, poderiam me ajudar?

Obrigado

Voce nao postou o codigo do seu HibernateUtil.

Cara tenta algo como:


EntityTransaction tx = em.getTransaction();
        try{
            tx.begin();
            sessao.save(entity);
            tx.commit();
            sessao.close();
}catch .....

ou tente ver se está assim:


protected Session session;
protected Session getSesseion(){

    return HibernateUtil.getInstance().getSession();
}

protected  void savingPojo(Serializable pojo){
  Session sessao = getSesseion();
  sessao.saveOrUpdate(pojo);
  sessao.beginTransaction().commit();
  sessao.close();
}

Aliáis vai ter o aljug java day II dia 01/12/12 mais informações no blog do Aljug http://aljug.blogspot.com as inscrições www.eventick.com.br/aljugjavaday

Irei analisar quando chegar em casa, obrigado. O incrível é que desta mesma forma, funciona com outra classe.

@MiguelCP
Já estou inscrito, nos vemos por lá.

Ah, legal!

Quando fizer os testes posta aqui se conseguiu ou não assim qualquer coisa posso te ajudar.

Tentei das outras formas porém a mesma coisa. Até coloquei o código dentro do try/catch e mesmo assim não me retornou erro.

Esse é o HibernateUtil:

package dao;

import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public class HibernateUtil {
	
	private static SessionFactory sessionFactory;

	private static SessionFactory sessionFactory()  
	throws HibernateException {  
		
	        Configuration configuration = new Configuration();  
	                      configuration.configure();  
	        
	        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()  
	                        .applySettings(configuration.getProperties())  
	                        .buildServiceRegistry();  
	       
	        sessionFactory = configuration.buildSessionFactory(serviceRegistry);   
	        
	        return sessionFactory;
	} 
	
	public static SessionFactory getSessionFactory(){
		return sessionFactory();	
	}
	
}

Uma pergunta, voce utiliza que tipo de configuracao do hibernate ? hibernate.cfg.xml ? hibernate.properties ? Esta usando hibernate 4 ?

Opa! Desculpa a demora. Estou usando o cf.xml e nele eu tinha esquecido de mapear a classe Chat, porém quando a inclui ele me apresentou erro:

<!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>
		
	    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
	    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/chat</property>
	    <property name="hibernate.connection.user">root</property>    
        <property name="hibernate.connection.password">******</property>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

		<property name="show_sql">true</property>
		
		<mapping class="model.Usuario" />
        <mapping class="controller.Chat" />
        
	</session-factory>
</hibernate-configuration>
21/11/2012 01:51:52 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/ChatApplication] threw exception [org.hibernate.MappingException: Could not determine type for: controller.UsuarioBean, at table: chat, for columns: [org.hibernate.mapping.Column(usuario_destino)]] with root cause
org.hibernate.MappingException: Could not determine type for: controller.UsuarioBean, at table: chat, for columns: [org.hibernate.mapping.Column(usuario_destino)]
	at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:316)
	at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:294)
	at org.hibernate.mapping.Property.isValid(Property.java:238)
	at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:469)
	at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
	at org.hibernate.cfg.Configuration.validate(Configuration.java:1294)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1742)
	at dao.HibernateUtil.sessionFactory(HibernateUtil.java:23)
	at dao.HibernateUtil.getSessionFactory(HibernateUtil.java:29)
	at dao.UsuarioDao.<init>(UsuarioDao.java:10)
	at controller.Principal.entrarSala(Principal.java:44)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
package controller;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import observer.Observador;

import model.Usuario;

@ManagedBean
@SessionScoped
public class UsuarioBean implements Observador{
	
	private Usuario usuario;
	
	public UsuarioBean(){
		this.usuario = new Usuario();
	}	
	
	public Usuario getUsuario() {
		return usuario;
	}

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


	@Override
	public void atualizarMensagem(String mensagem) {
		System.out.println( getUsuario().getApelido() + " : " + mensagem);
		
	}

	@Override
	public String toString(){
		return getUsuario().getApelido();
	}
}
+-----------------+--------------+------+-----+---------+-------+
| Field                 | Type           | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| id                     | int(11)        | NO   | PRI | NULL    |       |
| usuario_origem | varchar(30) | NO   |     | NULL    |       |
| usuario_destino | varchar(30)| YES   |     | NULL    |       |
| data_mensagem| datetime      NO    |     | NULL    |       |
| mensagem        | varchar(140) | NO |     | NULL    |       |
+-----------------+--------------+------+-----+---------+-------+

Ainda fuçando aqui e não consigo encontrar uma solução.

Chat.java

package controller;

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

import javax.faces.bean.ManagedProperty;
import dao.ChatDao;

import observer.Objeto;
import observer.Observador;
import model.ChatTable;

public class Chat implements Objeto{

	private UsuarioBean usuarioDestino;
	private Date dataHoraMensagem;
	private String mensagemPublica;
	private String mensagemPrivada;
	private UsuarioBean usuarioOrigem;
	private List<Observador> usuarioConectado;
	private static Chat instancia;
	@ManagedProperty(value = "#{usuarioBean}")
	private UsuarioBean usuarioBean;
	
	public Chat(){
		this.usuarioConectado = new ArrayList<Observador>();
	}

	public UsuarioBean getUsuarioOrigem() {
		return usuarioOrigem;
	}

	public void setUsuarioOrigem(UsuarioBean usuarioOrigem) {
		this.usuarioOrigem = usuarioOrigem;
	}

	public UsuarioBean getUsuarioDestino() {
		return usuarioDestino;
	}

	public void setUsuarioDestino(UsuarioBean usuarioDestino) {
		this.usuarioDestino = usuarioDestino;
	}	
	public static Chat getInstancia(){
		if( instancia == null){
			instancia = new Chat();
		} 
		return instancia;
	}
	
	
	public String getMensagemPrivada() {
		return mensagemPrivada;
	}
	
	public void setMensagemPrivada(String mensagemPrivada) {
		this.mensagemPrivada = this.usuarioOrigem + " para "
				+ this.usuarioDestino + " : " + mensagemPrivada;

		try {

			ChatTable c = new ChatTable();
			c.setUsuarioOrigem(this.usuarioOrigem);
			c.setUsuarioDestino(this.usuarioDestino);
			c.setMensagemPrivada(mensagemPrivada);
			c.setDataHoraMensagem(new Date());

			System.out.println(c.getUsuarioOrigem());
			System.out.println(c.getUsuarioDestino());

			try {
				ChatDao cdao = new ChatDao();
				cdao.inserirMensagemPrivada(c);
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println(e.getMessage());
			}
			
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
		}	
	}
	
	public String getMensagemPublica() {
		return mensagemPublica;
	}
	public void setMensagemPublica(String mensagemPublica) {
		this.mensagemPublica = mensagemPublica;
		notificarObservadores();
	}
	
	public List<Observador> getUsuarioConectado() {
		return usuarioConectado;
	}

	public Date getDataHoraMensagem() {
		return dataHoraMensagem;
	}

	public void setDataHoraMensagem(Date dataHoraMensagem) {
		this.dataHoraMensagem = dataHoraMensagem;
	}

	@Override
	public void adicionarObservador(UsuarioBean usuarioBean) {
		this.usuarioConectado.add(usuarioBean);
		
	}

	@Override
	public void removerObservador(UsuarioBean usuarioBean) {
		this.usuarioConectado.remove(usuarioBean);
		
	}

	@Override
	public void notificarObservadores() {
		for( Observador observador : this.usuarioConectado){
			observador.atualizarMensagem(this.usuarioOrigem + this.mensagemPublica );			
		}
	}
	
}

ChatTable.java

package model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import controller.UsuarioBean;

@Entity
@Table(name = "chat")
public class ChatTable {
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column
	private int id;
	
	@Column(name = "usuario_destino")
	private UsuarioBean usuarioDestino;
	
	@Column(name = "usuario_origem")
	private UsuarioBean usuarioOrigem;
	
	@Column(name = "data_mensagem")
	private Date dataHoraMensagem;
	
	@Column(name = "mensagem")
	private String mensagemPublica;
	
	@Column(name = "mensagem")
	private String mensagemPrivada;

	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public UsuarioBean getUsuarioOrigem() {
		return usuarioOrigem;
	}
	public void setUsuarioOrigem(UsuarioBean usuarioOrigem) {
		this.usuarioOrigem = usuarioOrigem;
	}
	public UsuarioBean getUsuarioDestino() {
		return usuarioDestino;
	}
	public void setUsuarioDestino(UsuarioBean usuarioDestino) {
		this.usuarioDestino = usuarioDestino;
	}
	public Date getDataHoraMensagem() {
		return dataHoraMensagem;
	}
	public void setDataHoraMensagem(Date dataHoraMensagem) {
		this.dataHoraMensagem = dataHoraMensagem;
	}
	public String getMensagemPublica() {
		return mensagemPublica;
	}
	public void setMensagemPublica(String mensagemPublica) {
		this.mensagemPublica = mensagemPublica;
	}
	public String getMensagemPrivada() {
		return mensagemPrivada;
	}
	public void setMensagemPrivada(String mensagemPrivada) {
		this.mensagemPrivada = mensagemPrivada;
	}
	
}	
package controller;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import observer.Observador;

import model.Usuario;

@ManagedBean
@SessionScoped
public class UsuarioBean implements Observador{
	
	private Usuario usuario;
	
	public UsuarioBean(){
		this.usuario = new Usuario();
	}	
	
	public Usuario getUsuario() {
		return usuario;
	}

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


	@Override
	public void atualizarMensagem(String mensagem) {
		System.out.println( getUsuario().getApelido() + " : " + mensagem);
		
	}

	@Override
	public String toString(){
		return getUsuario().getApelido();
	}
}

Principal.java

UsuarioBean.java

package controller;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import observer.Observador;

import model.Usuario;

@ManagedBean
@SessionScoped
public class UsuarioBean implements Observador{
	
	private Usuario usuario;
	
	public UsuarioBean(){
		this.usuario = new Usuario();
	}	
	
	public Usuario getUsuario() {
		return usuario;
	}

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


	@Override
	public void atualizarMensagem(String mensagem) {
		System.out.println( getUsuario().getApelido() + " : " + mensagem);
		
	}

	@Override
	public String toString(){
		return getUsuario().getApelido();
	}
}
package controller;

import java.util.Date;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import model.Usuario;

import dao.*;
import controller.*;

@ManagedBean
public class Principal {
	
	@ManagedProperty(value = "#{usuarioBean}")
	private UsuarioBean usuarioBean;
	public Chat chat;

	public Principal(){
		this.chat = Chat.getInstancia();
	}
	
	public UsuarioBean getUsuarioBean() {
		return usuarioBean;
	}

	public void setUsuarioBean(UsuarioBean usuarioBean) {
		this.usuarioBean = usuarioBean;
	}

	
	public Chat getChat() {
		return chat;
	}

	public void setChat(Chat chat) {
		this.chat = chat;
	}

	public String entrarSala(){
		UsuarioDao udao = new UsuarioDao();
		           udao.inserirUsuario(usuarioBean.getUsuario());
		           
		chat.adicionarObservador(usuarioBean);
		chat.setUsuarioOrigem(usuarioBean);
			
		return "chat";	
	}
	
	public String sairSala(){
		Usuario update = usuarioBean.getUsuario();
				update.setDataHoraSaida(new Date());
				
		UsuarioDao udao = new UsuarioDao();
				   udao.alterarUsuario(update);
        
        chat.removerObservador(usuarioBean);	
        
        FacesContext context = FacesContext.getCurrentInstance(); 
        context.getExternalContext().getSessionMap().remove("#{usuarioBean}");
        
        HttpSession session = (HttpSession)FacesContext.getCurrentInstance()
        					  .getExternalContext().getSession(false);
        		    session.invalidate(); 
        		    
		return "index";
	}

}

hibernate.cfg.xml

<!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>
		
	    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
	    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/chat</property>
	    <property name="hibernate.connection.user">root</property>    
        <property name="hibernate.connection.password">marcelo.0201</property>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

		<property name="show_sql">true</property>
		
		<mapping class="model.Usuario" />
        <mapping class="model.ChatTable" />
        
	</session-factory>
</hibernate-configuration>

Erro:

AVISO: #{principal.entrarSala }: org.hibernate.MappingException: Could not determine type for: controller.UsuarioBean, at table: chat, for columns: [org.hibernate.mapping.Column(usuario_origem)]
javax.faces.FacesException: #{principal.entrarSala }: org.hibernate.MappingException: Could not determine type for: controller.UsuarioBean, at table: chat, for columns: [org.hibernate.mapping.Column(usuario_origem)]
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: org.hibernate.MappingException: Could not determine type for: controller.UsuarioBean, at table: chat, for columns: [org.hibernate.mapping.Column(usuario_origem)]
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	... 22 more
Caused by: org.hibernate.MappingException: Could not determine type for: controller.UsuarioBean, at table: chat, for columns: [org.hibernate.mapping.Column(usuario_origem)]
	at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:316)
	at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:294)
	at org.hibernate.mapping.Property.isValid(Property.java:238)
	at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:469)
	at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
	at org.hibernate.cfg.Configuration.validate(Configuration.java:1294)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1742)
	at dao.HibernateUtil.sessionFactory(HibernateUtil.java:23)
	at dao.HibernateUtil.getSessionFactory(HibernateUtil.java:29)
	at dao.UsuarioDao.<init>(UsuarioDao.java:10)
	at controller.Principal.entrarSala(Principal.java:44)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	... 23 more
21/11/2012 12:19:04 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/ChatApplication] threw exception [org.hibernate.MappingException: Could not determine type for: controller.UsuarioBean, at table: chat, for columns: [org.hibernate.mapping.Column(usuario_origem)]] with root cause
org.hibernate.MappingException: Could not determine type for: controller.UsuarioBean, at table: chat, for columns: [org.hibernate.mapping.Column(usuario_origem)]
	at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:316)
	at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:294)
	at org.hibernate.mapping.Property.isValid(Property.java:238)
	at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:469)
	at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
	at org.hibernate.cfg.Configuration.validate(Configuration.java:1294)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1742)
	at dao.HibernateUtil.sessionFactory(HibernateUtil.java:23)
	at dao.HibernateUtil.getSessionFactory(HibernateUtil.java:29)
	at dao.UsuarioDao.<init>(UsuarioDao.java:10)
	at controller.Principal.entrarSala(Principal.java:44)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

ALguma solução?

org.hibernate.MappingException: Could not determine type for: controller.UsuarioBean, at table: chat, for columns: [org.hibernate.mapping.Column(usuario_origem)] 

Ao que me parece, ta dando erro porque voce esta criando anotacao de coluna para um objeto, e no banco de dados em questao, ele nao aceita esse tipo de coluna, ou é varchar, ou byte, ou int e etc etc.

ou entao nao existe essa coluna no banco “usuario_origem”

Obrigado, rof20004. Não me atentei ao fato de que usurio_origem na minha aplicação, recebe um UsuarioBean através do @ManagedProperty

Irei tentar fazer algo para contornar o problema. Tem alguma dica?

Pode ter duas colunas com o mesmo nome??

  @Column(name = "mensagem")  
    private String mensagemPublica;  
      
    @Column(name = "mensagem")  
    private String mensagemPrivada;

douglas_arantes, nem eu sei te responder isso. Fiz dessa forma pois estava tratando duas propriedades diferentes que iriam para a mesma coluna. Mas não pode? Caso não, irei corrigir.

@edit
É não pode, fazendo algumas alterações aqui, apresentou o erro:

javax.servlet.ServletException: org.hibernate.MappingException: Repeated column in mapping for entity: model.ChatTable column: mensagem (should be mapped with insert="false" update="false")
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)

Já estou corrigindo.

Eu sei pouquíssima coisa de Hibernate, vou estuda-lo mais a frente, mas acho que talvez um dos possíveis erros fosse ter duas tabelas com o mesmo nome.

Caso consiga resolver esse problema post aqui como contornou essa situação.

Até mais.

Obrigado pela ajuda. O problema era que eu estava tentando salvar um objeto tipo Usuario quando deveria ser String e bastou alterar para Usuario.getApelido() na coluna usuario_destino.