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....