CGLIB ERROR: ClassCastExcepion in my Bean
eltonk Feb 21, 2006 1:11 PMHello guys....
Every time that i need get a BEAN with the Hibernate Session, a ClassCastExcepion ocourr. When I see in my Bean, I get a CGLIB error, like this picture.
Anyone have a ideia to help-me?!
PS: JBOSS 4.0.3SP1
Hibernate 3 -> migrated of the Hibernate 2.1 (Package in the Jboss Server)
Oracle 9.
[img]http://www.eltonk.com.br/snapshot2.png[/img]
There is my configuration:
package com.bar.sistema.persistence.usuario;
import java.io.Serializable;
import java.util.Date;
import java.util.Set;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import com.bar.Sistema.persistence.grupo.GrupoBean;
import com.bar.Sistema.persistence.nivel.NivelBean;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
/**
 *
 * <strong>Copyright © 2005 bar Tecnologia & Serviços SA </strong> <br>
 * <strong>Sistema Eletrônico </strong> <br>
 * <br>
 *
 * UsuarioBean.java <br>
 * <br>
 * Classe usada para persistir um usuario e usada para gerar o hbm para o hibernate
 *
 * @since Apr 12, 2005
 * @version $$Revision$$<br>
 * $$Id$$
 * @hibernate.class table="USUARIO" dynamic-update="true" lazy="false"
 */
public class UsuarioBean implements Serializable
{
 /**
 * SerialVersionUID default
 */
 private static final long serialVersionUID = 1L;
 /** Campos */
 private Long cdUsuario;
 private String nmUsuario;
 private String nmLogin;
 private String dsSenha;
 private Date dtCadastro;
 /** campos para o controle das alterações de senha */
 private Date dtAlteracaoSenha;
 private String dsEmail;
 private Integer flBloqueado;
 private Integer flExpirada;
 private Integer nuDiasExpira;
 private Integer nuTentativas;
 /** chaves estrageiras */
 private Integer cdNivel;
 private Integer cdGrupo;
 /** Relacionamento */
 private Set SistemaStatus;
 private Set loteStatus;
 private Set usuarioPagador;
 private Set usuarioFavorecido;
 private Set assinaturas;
 private GrupoBean grupo;
 private NivelBean nivel;
 /** default constructor */
 public UsuarioBean()
 {
 }
 /**
 * @hibernate.id generator-class="sequence" unsaved-value="0" column="CD_USUARIO"
 * @hibernate.generator-param name = "sequence" value = "SEQ_USUARIO"
 * @return Returns the cdUsuario.
 */
 public Long getCdUsuario()
 {
 return cdUsuario;
 }
 /**
 * @param cdUsuario
 * The cdUsuario to set.
 */
 public void setCdUsuario( Long cdUsuario )
 {
 this.cdUsuario = cdUsuario;
 }
 /**
 * @hibernate.property column="DS_SENHA"
 * @return Returns the dsSenha
 */
 public String getDsSenha()
 {
 return dsSenha;
 }
 /**
 * @param dsSenha
 * The dsSenha to set.
 */
 public void setDsSenha( String dsSenha )
 {
 this.dsSenha = dsSenha;
 }
 /**
 * @hibernate.property column="DT_CADASTRO"
 * @return Returns the dtCadastro
 */
 public Date getDtCadastro()
 {
 return dtCadastro;
 }
 /**
 * @param dtCadastro
 * The dtCadastro to set.
 */
 public void setDtCadastro( Date dtCadastro )
 {
 this.dtCadastro = dtCadastro;
 }
 /**
 * @hibernate.property column="DS_EMAIL"
 * @return Returns the dsEmail.
 */
 public String getDsEmail()
 {
 return dsEmail;
 }
 /**
 * @param dsEmail
 * The dsEmail to set.
 */
 public void setDsEmail( String dsEmail )
 {
 this.dsEmail = dsEmail;
 }
 /**
 * @hibernate.property column="DT_ALTERACAO_SENHA"
 * @return Returns the dtAlteracaoSenha.
 */
 public Date getDtAlteracaoSenha()
 {
 return dtAlteracaoSenha;
 }
 /**
 * @param dtAlteracaoSenha
 * The dtAlteracaoSenha to set.
 */
 public void setDtAlteracaoSenha( Date dtAlteracaoSenha )
 {
 this.dtAlteracaoSenha = dtAlteracaoSenha;
 }
 /**
 * @hibernate.property column="FL_BLOQUEADO"
 * @return Returns the flBloqueado.
 */
 public Integer getFlBloqueado()
 {
 return flBloqueado;
 }
 /**
 * @param flBloqueado
 * The flBloqueado to set.
 */
 public void setFlBloqueado( Integer flBloqueado )
 {
 this.flBloqueado = flBloqueado;
 }
 /**
 * @hibernate.property column="FL_EXPIRADA"
 * @return Returns the flExpirada.
 */
 public Integer getFlExpirada()
 {
 return flExpirada;
 }
 /**
 * @param flExpirada
 * The flExpirada to set.
 */
 public void setFlExpirada( Integer flEspirada )
 {
 this.flExpirada = flEspirada;
 }
 /**
 * @hibernate.property column="NU_DIAS_EXPIRA"
 * @return Returns the nuDiasExpira.
 */
 public Integer getNuDiasExpira()
 {
 return nuDiasExpira;
 }
 /**
 * @param nuDiasExpira
 * The nuDiasExpira to set.
 */
 public void setNuDiasExpira( Integer nuDiasEspira )
 {
 this.nuDiasExpira = nuDiasEspira;
 }
 /**
 * @hibernate.property column="NU_TENTATIVAS"
 * @return Returns the nuTentativas.
 */
 public Integer getNuTentativas()
 {
 return nuTentativas;
 }
 /**
 * @param nuTentativas
 * The nuTentativas to set.
 */
 public void setNuTentativas( Integer nuTentativas )
 {
 this.nuTentativas = nuTentativas;
 }
 /**
 * @hibernate.property column="CD_GRUPO"
 * @return Returns the cdGrupo.
 */
 public Integer getCdGrupo()
 {
 return cdGrupo;
 }
 /**
 * @param cdGrupo
 * The cdGrupo to set.
 */
 public void setCdGrupo( Integer cdGrupo )
 {
 this.cdGrupo = cdGrupo;
 }
 /**
 * @hibernate.property column="CD_NIVEL"
 * @return Returns the cdNivel.
 */
 public Integer getCdNivel()
 {
 return cdNivel;
 }
 /**
 * @param cdNivel
 * The cdNivel to set.
 */
 public void setCdNivel( Integer cdNivel )
 {
 this.cdNivel = cdNivel;
 }
 /**
 * @hibernate.property column="NM_LOGIN"
 * @return Returns the nmLogin
 */
 public String getNmLogin()
 {
 return nmLogin;
 }
 /**
 * @param nmLogin
 * The nmLogin to set.
 */
 public void setNmLogin( String nmLogin )
 {
 this.nmLogin = nmLogin;
 }
 /**
 * @hibernate.property column="NM_USUARIO"
 * @return Returns the nmUsuario
 */
 public String getNmUsuario()
 {
 return nmUsuario;
 }
 /**
 * @param nmUsuario
 * The nmUsuario to set.
 */
 public void setNmUsuario( String nmUsuario )
 {
 this.nmUsuario = nmUsuario;
 }
 /**
 * @hibernate.set lazy="false" inverse="true"
 * @hibernate.collection-key column="CD_USUARIO" insert="true" update="false"
 * @hibernate.collection-one-to-many class="com.bar.Sistema.persistence.assinatura.AssinaturaBean"
 * @return Returns the assinaturas.
 */
 public Set getAssinaturas()
 {
 return assinaturas;
 }
 /**
 * @param assinaturas
 * The assinaturas to set.
 */
 public void setAssinaturas( Set assinaturas )
 {
 this.assinaturas = assinaturas;
 }
 /**
 * @hibernate.many-to-one column="CD_NIVEL" insert="false" update="false"
 * @return Returns the nivel.
 */
 public NivelBean getNivel()
 {
 return nivel;
 }
 /**
 * @param nivel
 * The nivel to set.
 */
 public void setNivel( NivelBean nivel )
 {
 this.nivel = nivel;
 }
 /**
 * @hibernate.many-to-one column="CD_GRUPO" insert="false" update="false"
 * @return Returns the grupo.
 */
 public GrupoBean getGrupo()
 {
 return grupo;
 }
 /**
 * @param grupo
 * The grupo to set.
 */
 public void setGrupo( GrupoBean grupo )
 {
 this.grupo = grupo;
 }
 /**
 * @hibernate.set lazy="false" inverse="true"
 * @hibernate.collection-key column="CD_USUARIO" insert="true" update="false"
 * @hibernate.collection-one-to-many class="com.bar.Sistema.persistence.Sistemastatus.SistemaStatusBean"
 * @return Returns the SistemaStatus.
 */
 public Set getSistemaStatus()
 {
 return SistemaStatus;
 }
 /**
 * @hibernate.set lazy="false" inverse="true"
 * @hibernate.collection-key column="CD_USUARIO" insert="true" update="false"
 * @hibernate.collection-one-to-many class="com.bar.Sistema.persistence.lotestatus.LoteStatusBean"
 * @return Returns the loteStatus.
 */
 public Set getLoteStatus()
 {
 return loteStatus;
 }
 /**
 * @param loteStatus
 * The loteStatus to set.
 */
 public void setLoteStatus( Set loteStatus )
 {
 this.loteStatus = loteStatus;
 }
 /**
 * @param SistemaStatus
 * The SistemaStatus to set.
 */
 public void setSistemaStatus( Set SistemaStatus )
 {
 this.SistemaStatus = SistemaStatus;
 }
 /**
 * @hibernate.set lazy="false" inverse="true"
 * @hibernate.collection-key column="CD_USUARIO" insert="true" update="false"
 * @hibernate.collection-one-to-many class="com.bar.Sistema.persistence.usuariopagador.UsuarioPagadorBean"
 * @return Returns the usuarioPagador.
 */
 public Set getUsuarioPagador()
 {
 return usuarioPagador;
 }
 /**
 * @param usuarioPagador
 * The usuarioPagador to set.
 */
 public void setUsuarioPagador( Set usuarioPagador )
 {
 this.usuarioPagador = usuarioPagador;
 }
 /**
 * @hibernate.set lazy="false" inverse="true"
 * @hibernate.collection-key column="CD_USUARIO" insert="true" update="false"
 * @hibernate.collection-one-to-many class="com.bar.Sistema.persistence.usuariofavorecido.UsuarioFavorecidoBean"
 * @return Um Set de usuariosFavorecidos.
 */
 public Set getUsuarioFavorecido()
 {
 return usuarioFavorecido;
 }
 /**
 * @param Um
 * Set de usuariosFavorecidos.
 */
 public void setUsuarioFavorecido( Set usuariosFavorecidos )
 {
 this.usuarioFavorecido = usuariosFavorecidos;
 }
 /**
 * @see java.lang.Object#toString()
 */
 public String toString()
 {
 return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("nuTentativas", this.nuTentativas)
 .append("cdGrupo", this.cdGrupo).append("nmLogin", this.nmLogin).append("dtCadastro", this.dtCadastro)
 .append("dtAlteracaoSenha", this.dtAlteracaoSenha).append("flBloqueado", this.flBloqueado).append(
 "cdNivel", this.cdNivel).append("flExpirada", this.flExpirada)
 .append("nmUsuario", this.nmUsuario).append("dsEmail", this.dsEmail).append("nuDiasExpira",
 this.nuDiasExpira).append("cdUsuario", this.cdUsuario).toString();
 }
 /**
 * @see java.lang.Object#equals(Object)
 */
 public boolean equals( Object object )
 {
 if (!(object instanceof UsuarioBean))
 {
 return false;
 }
 UsuarioBean rhs = (UsuarioBean) object;
 return new EqualsBuilder().appendSuper(super.equals(object)).append(this.nuTentativas, rhs.nuTentativas)
 .append(this.nivel, rhs.nivel).append(this.cdGrupo, rhs.cdGrupo).append(this.nmLogin, rhs.nmLogin)
 .append(this.dtCadastro, rhs.dtCadastro).append(this.dtAlteracaoSenha, rhs.dtAlteracaoSenha).append(
 this.loteStatus, rhs.loteStatus).append(this.flBloqueado, rhs.flBloqueado).append(this.cdNivel,
 rhs.cdNivel).append(this.usuarioPagador, rhs.usuarioPagador).append(this.flExpirada, rhs.flExpirada)
 .append(this.usuarioFavorecido, rhs.usuarioFavorecido).append(this.dsSenha, rhs.dsSenha).append(
 this.SistemaStatus, rhs.SistemaStatus).append(this.grupo, rhs.grupo).append(this.nmUsuario,
 rhs.nmUsuario).append(this.dsEmail, rhs.dsEmail).append(this.assinaturas, rhs.assinaturas).append(
 this.nuDiasExpira, rhs.nuDiasExpira).append(this.cdUsuario, rhs.cdUsuario).isEquals();
 }
 /**
 * @see java.lang.Object#hashCode()
 */
 public int hashCode()
 {
 return new HashCodeBuilder(-1718085171, 1735336429).appendSuper(super.hashCode())
 .append(this.nuTentativas).append(this.nivel).append(this.cdGrupo).append(this.nmLogin).append(
 this.dtCadastro).append(this.dtAlteracaoSenha).append(this.loteStatus).append(this.flBloqueado)
 .append(this.cdNivel).append(this.usuarioPagador).append(this.flExpirada)
 .append(this.usuarioFavorecido).append(this.dsSenha).append(this.SistemaStatus).append(this.grupo)
 .append(this.nmUsuario).append(this.dsEmail).append(this.assinaturas).append(this.nuDiasExpira).append(
 this.cdUsuario).toHashCode();
 }
}
hbm:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping > <class name="com.bar.Sistema.persistence.usuario.UsuarioBean" table="USUARIO" lazy="false" dynamic-update="true" > <id name="cdUsuario" column="CD_USUARIO" type="java.lang.Long" unsaved-value="0" > <generator class="sequence"> <param name="sequence">SEQ_USUARIO</param> <!-- To add non XDoclet generator parameters, create a file named hibernate-generator-params-UsuarioBean.xml containing the additional parameters and place it in your merge dir. --> </generator> </id> <property name="dsSenha" type="java.lang.String" update="true" insert="true" column="DS_SENHA" /> <property name="dtCadastro" type="java.util.Date" update="true" insert="true" column="DT_CADASTRO" /> <property name="dsEmail" type="java.lang.String" update="true" insert="true" column="DS_EMAIL" /> <property name="dtAlteracaoSenha" type="java.util.Date" update="true" insert="true" column="DT_ALTERACAO_SENHA" /> <property name="flBloqueado" type="java.lang.Integer" update="true" insert="true" column="FL_BLOQUEADO" /> <property name="flExpirada" type="java.lang.Integer" update="true" insert="true" column="FL_EXPIRADA" /> <property name="nuDiasExpira" type="java.lang.Integer" update="true" insert="true" column="NU_DIAS_EXPIRA" /> <property name="nuTentativas" type="java.lang.Integer" update="true" insert="true" column="NU_TENTATIVAS" /> <property name="cdGrupo" type="java.lang.Integer" update="true" insert="true" column="CD_GRUPO" /> <property name="cdNivel" type="java.lang.Integer" update="true" insert="true" column="CD_NIVEL" /> <property name="nmLogin" type="java.lang.String" update="true" insert="true" column="NM_LOGIN" /> <property name="nmUsuario" type="java.lang.String" update="true" insert="true" column="NM_USUARIO" /> <set name="assinaturas" lazy="false" inverse="true" cascade="none" sort="unsorted" > <key column="CD_USUARIO" > </key> <one-to-many class="com.bar.Sistema.persistence.assinatura.AssinaturaBean" /> </set> <many-to-one name="nivel" class="com.bar.Sistema.persistence.nivel.NivelBean" cascade="none" outer-join="auto" update="false" insert="false" column="CD_NIVEL" /> <many-to-one name="grupo" class="com.bar.Sistema.persistence.grupo.GrupoBean" cascade="none" outer-join="auto" update="false" insert="false" column="CD_GRUPO" /> <set name="SistemaStatus" lazy="false" inverse="true" cascade="none" sort="unsorted" > <key column="CD_USUARIO" > </key> <one-to-many class="com.bar.Sistema.persistence.Sistemastatus.SistemaStatusBean" /> </set> <set name="loteStatus" lazy="false" inverse="true" cascade="none" sort="unsorted" > <key column="CD_USUARIO" > </key> <one-to-many class="com.bar.Sistema.persistence.lotestatus.LoteStatusBean" /> </set> <set name="usuarioPagador" lazy="false" inverse="true" cascade="none" sort="unsorted" > <key column="CD_USUARIO" > </key> <one-to-many class="com.bar.Sistema.persistence.usuariopagador.UsuarioPagadorBean" /> </set> <set name="usuarioFavorecido" lazy="false" inverse="true" cascade="none" sort="unsorted" > <key column="CD_USUARIO" > </key> <one-to-many class="com.bar.Sistema.persistence.usuariofavorecido.UsuarioFavorecidoBean" /> </set> <!-- To add non XDoclet property mappings, create a file named hibernate-properties-UsuarioBean.xml containing the additional properties and place it in your merge dir. --> </class> </hibernate-mapping>
bean do Nivel
package com.bar.sistema.persistence.nivel;
import java.io.Serializable;
import java.util.Set;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
/**
 *
 * <strong>Copyright © 2005 bar Tecnologia & Serviços SA </strong> <br>
 * <strong>Sistema Eletrônico </strong> <br>
 * <br>
 *
 * NivelBean.java <br>
 * <br>
 * Classe usada para persistir um nivel e usada para gerar o hbm para o hibernate
 *
 * @since Apr 12, 2005
 * @version $$Revision$$<br>
 * $$Id$$
 * @hibernate.class table="NIVEL" dynamic-update="true" lazy="false"
 * @hibernate.cache usage="read-only"
 */
public class NivelBean implements Serializable
{
 /**
 * SerialVersionUID default
 */
 private static final long serialVersionUID = 1L;
 /** Campos */
 private Integer cdNivel;
 private String dsNivel;
 /** Relacionamento */
 private Set usuarios;
 /**
 * Construtor Completo
 *
 * @param cdNivel
 * <code> Integer </code> codigo de nivel
 * @param dsNivel
 * <code> String </code> descricao de nivel
 * @param usuarios
 * <code> UsuarioBean </code> colecao de usuarios
 */
 public NivelBean( Integer cdNivel , String dsNivel , Set usuarios )
 {
 this.cdNivel = cdNivel;
 this.dsNivel = dsNivel;
 this.usuarios = usuarios;
 }
 /**
 * Construtor Default
 */
 public NivelBean()
 {
 }
 /**
 * @hibernate.id generator-class="sequence" unsaved-value="0" column="CD_NIVEL"
 * @hibernate.generator-param name = "sequence" value = "SEQ_NIVEL"
 * @return Returns the cdNivel.
 */
 public Integer getCdNivel()
 {
 return cdNivel;
 }
 /**
 * @param cdNivel
 * The cdNivel to set.
 */
 public void setCdNivel( Integer cdNivel )
 {
 this.cdNivel = cdNivel;
 }
 /**
 * @hibernate.property column="DS_NIVEL"
 * @return Returns the dsNivel
 */
 public String getDsNivel()
 {
 return dsNivel;
 }
 /**
 * @param dsNivel
 * The dsNivel to set.
 */
 public void setDsNivel( String dsNivel )
 {
 this.dsNivel = dsNivel;
 }
 /**
 * @hibernate.set lazy="false" inverse="true"
 * @hibernate.collection-key column="CD_NIVEL" insert="true" update="false"
 * @hibernate.collection-one-to-many class="com.bar.Sistema.persistence.usuario.UsuarioBean"
 * @return Returns the usuarios.
 */
 public Set getUsuarios()
 {
 return usuarios;
 }
 /**
 * @param usuarios
 * The usuarios to set.
 */
 public void setUsuarios( Set usuarios )
 {
 this.usuarios = usuarios;
 }
 /**
 * @see java.lang.Object#toString()
 */
 public String toString()
 {
 return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("dsNivel", this.dsNivel).append(
 "cdNivel", this.cdNivel).toString();
 }
}
hbm do nivel
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping > <class name="com.bar.sistema.persistence.nivel.NivelBean" table="NIVEL" lazy="false" dynamic-update="true" > <cache usage="read-only" /> <id name="cdNivel" column="CD_NIVEL" type="java.lang.Integer" unsaved-value="0" > <generator class="sequence"> <param name="sequence">SEQ_NIVEL</param> <!-- To add non XDoclet generator parameters, create a file named hibernate-generator-params-NivelBean.xml containing the additional parameters and place it in your merge dir. --> </generator> </id> <property name="dsNivel" type="java.lang.String" update="true" insert="true" column="DS_NIVEL" /> <set name="usuarios" lazy="false" inverse="true" cascade="none" sort="unsorted" > <key column="CD_NIVEL" > </key> <one-to-many class="com.bar.sistema.persistence.usuario.UsuarioBean" /> </set> <!-- To add non XDoclet property mappings, create a file named hibernate-properties-NivelBean.xml containing the additional properties and place it in your merge dir. --> </class> </hibernate-mapping>
jboss-service.xml
<?xml version="1.0" encoding="UTF-8"?> <server> <mbean code="org.jboss.hibernate.jmx.Hibernate" name="jboss.har:service=Hibernate"> <attribute name="DatasourceName">java:/SistemaDS</attribute> <attribute name="Dialect">org.hibernate.dialect.Oracle9Dialect</attribute> <attribute name="SessionFactoryName">java:/hibernate/SistemaSessionFactory</attribute> <attribute name="CacheProviderClass">org.hibernate.cache.HashtableCacheProvider</attribute> <attribute name="ReflectionOptimizationEnabled">true</attribute> <attribute name="StatGenerationEnabled">true</attribute> <attribute name="MaxFetchDepth">1</attribute> <!-- <attribute name="ShowSqlEnabled">true</attribute> --> </mbean> </server>
Thanks for any help....
 
    