-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 posts ] 
Author Message
 Post subject: New user of Hibernate, and I have CGLIB Enhancement failed
PostPosted: Tue Dec 27, 2005 4:37 pm 
Newbie

Joined: Tue Dec 27, 2005 4:22 pm
Posts: 5
Location: fortaleza/ce - Brasil
Hi All,

I am new user of Hibernate, and I have this problem: (maps before trace, thanks)

org.hibernate.HibernateException: CGLIB Enhancement failed: empresapessoas.PessoaJuridica
at org.hibernate.proxy.CGLIBLazyInitializer.getProxy(CGLIBLazyInitializer.java:102)
at org.hibernate.proxy.CGLIBProxyFactory.getProxy(CGLIBProxyFactory.java:47)
at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3121)
at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:232)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:173)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:869)
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:838)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:266)
at org.hibernate.type.EntityType.resolve(EntityType.java:303)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:113)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
at org.hibernate.loader.Loader.doQuery(Loader.java:717)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2150)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1492)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:298)
at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:431)
at persistencia.HibernateDAO.obter(HibernateDAO.java:137)
at gerentes.GerenteEmpresa.obterEmpresa(GerenteEmpresa.java:52)
at gerentes.TesteGerenteDeEstoque.testCadastrarItemNoEstoque(TesteGerenteDeEstoque.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.InstantiationException: empresapessoas.PessoaJuridica$$EnhancerByCGLIB$$81c71ab4
at java.lang.Class.newInstance0(Class.java:335)
at java.lang.Class.newInstance(Class.java:303)
at org.hibernate.proxy.CGLIBLazyInitializer.getProxy(CGLIBLazyInitializer.java:99)
... 41 more


Code:
Session session = getSessionWithTransaction();
Criteria criterio = session.createCriteria(EmpresaDoGrupo.class);
criterio.add(Expression.eq("Apelido","EU"));
session.flush();
return criterio.uniqueResult();

Maps:
<class name="empresapessoas.EmpresaDoGrupo" table="EmpresaDoGrupo">
<id name="Id" column="Id">
<generator class="native"/>
</id>

<property name="Descricao"/>
<property name="Apelido" index="true" unique="true" length="10"/>

<many-to-one name="DadosEmpresa"
class="empresapessoas.PessoaJuridica"
column="IdDadosEmpresa"
not-null="true"
lazy="proxy"
cascade="all"/>

<many-to-one name="GrupoEmpresarial"
column="IdGrupo"
not-null="true"
lazy="proxy"
cascade="all"/>
</class>

<class name="empresapessoas.Pessoa" table="Pessoa" abstract="true">
<id name="Id" column="Id">
<generator class="native"/>
</id>
<discriminator column="IdTipo" type="string"/>

<property name="Observacao"/>
<property name="Nome"/>
<property name="Cadastro"/>

<property name="IdEstadualString" column="IdEstadual" type="string" unique="true" index="true"/>

<property name="IdFederalString" column="IdFederal" type="string" unique="true" index="true"/>

<set name="contatos" table="ContatosPessoa" cascade="all">
<key column="IdContato" foreign-key="Id"/>
<many-to-many class="empresapessoas.Contato" />
</set>

<subclass name="empresapessoas.PessoaFisica" discriminator-value="F" />
<subclass name="empresapessoas.Colaborador" discriminator-value="C" />
<subclass name="empresapessoas.PessoaJuridica" discriminator-value="J" />

</class>

the POJO Pessoa work fine, insert and update and no problem, I use PessoaFisica, PessoaJuridica and Colaborador, and not have problem, but if I use POJO EmpresaDoGrupo I get Exception.

Thansk!


Top
 Profile  
 
 Post subject:
PostPosted: Tue Dec 27, 2005 4:44 pm 
Regular
Regular

Joined: Fri Sep 09, 2005 11:35 am
Posts: 101
please post pojo code also.


Top
 Profile  
 
 Post subject: POJOS
PostPosted: Wed Dec 28, 2005 11:46 am 
Newbie

Joined: Tue Dec 27, 2005 4:22 pm
Posts: 5
Location: fortaleza/ce - Brasil
public interface Pessoa {

String CAMPO_NOME = "Nome";
String CAMPO_ID_ESTADUAL = "IdEstadualString";
String CAMPO_ID_FEDERAL = "IdFederalString";

/**
* @return Returns the id.
*/
public Integer getId();

/**
* @param id The id to set.
*/
public void setId(Integer id);

/**
* @return Returns the observacao.
*/
public String getObservacao();

/**
* @param observacao The observacao to set.
*/
public void setObservacao(String observacao);

/**
* @return Returns the nome.
*/
public String getNome();

/**
* @param nome The nome to set.
*/
public void setNome(String nome);

/**
* @return Returns the cadastro.
*/
public Calendar getCadastro();

/**
* @param cadastro The cadastro to set.
*/
public void setCadastro(Calendar cadastro);

/**
* @return Returns the contatos.
*/
public Set<Contato> getContatos();

/**
* @param contatos The contatos to set.
*/
public void setContatos(Set<Contato> contatos);

/**
* @return Returns the tipo.
*/
public TipoPessoa getTipo();

/**
* @param tipo The tipo to set.
*/
public void setTipo(TipoPessoa tipo);

/**
* @return Returns the idEstadual.
*/
public IdEstadual getIdEstadual();

/**
* @param idEstadual The idEstadual to set.
*/
public void setIdEstadual(IdEstadual idEstadual);

/**
* @param idFederal The idFederal to set.
*/
public void setIdFederal(IdFederal idFederal);

/**
* @return Returns the idFederal.
*/
public IdFederal getIdFederal() ;

public String getIdFederalString();

public String getIdEstadualString();

/**
* @param idEstadual The idEstadual to set.
*/
public void setIdEstadualString(String idEstadual);

/**
* @param idFederal The idFederal to set.
*/
public void setIdFederalString(String idFederal);



}


public abstract class PessoaAbstrata implements Pessoa {
private Integer id;
private IdFederal idFederal;
private IdEstadual idEstadual;

private String nome;
private String Observacao;
private Set<Contato> contatos;
private Calendar cadastro;
private TipoPessoa tipo;

/**
* @return Returns the id.
*/
public Integer getId() {
return id;
}
/**
* @param id The id to set.
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return Returns the observacao.
*/
public String getObservacao() {
return Observacao;
}
/**
* @param observacao The observacao to set.
*/
public void setObservacao(String observacao) {
Observacao = observacao;
}
/**
* @return Returns the nome.
*/
public String getNome() {
return nome;
}
/**
* @param p_nome The nome to set.
*/
public void setNome(String p_nome) {
nome = p_nome;
}
/**
* @return Returns the cadastro.
*/
public Calendar getCadastro() {
return cadastro;
}
/**
* @param cadastro The cadastro to set.
*/
public void setCadastro(Calendar cadastro) {
this.cadastro = cadastro;
}

/**
* @return Returns the contatos.
*/
public Set<Contato> getContatos() {
return contatos;
}
/**
* @param contatos The contatos to set.
*/
public void setContatos(Set<Contato> contatos) {
this.contatos = contatos;
}

/**
* @return Returns the idEstadual.
*/
public IdEstadual getIdEstadual() {
return idEstadual;
}

/**
* @param idEstadual The idEstadual to set.
*/
public void setIdEstadual(IdEstadual idEstadual) {
this.idEstadual = idEstadual;
}
/**
* @param idFederal The idFederal to set.
*/
public void setIdFederal(IdFederal idFederal) {
this.idFederal = idFederal;
}

/**
* @return Returns the idFederal.
*/
public IdFederal getIdFederal() {
return idFederal;
}

public String getIdFederalString(){
return idFederal.toString();
}

public String getIdEstadualString() {
return idEstadual.toString();
}

/**
* @param idEstadual The idEstadual to set.
*/
abstract public void setIdEstadualString(String idEstadual);
/**
* @param idFederal The idFederal to set.
*/
abstract public void setIdFederalString(String idFederal);
/* (non-Javadoc)
*/
public TipoPessoa getTipo() {
return tipo;
}
/* (non-Javadoc)
*
*/
public void setTipo(TipoPessoa p_tipo) {
tipo = p_tipo;

}


}



public class PessoaJuridica extends PessoaAbstrata{

private PessoaJuridica() {
//
}

/**
* @param p_nome
* @param p_cnpj
* @param p_ie
* @param p_cadastro
*/
public PessoaJuridica(String p_nome, CNPJ p_cnpj, InscricaoEstadual p_ie, Calendar p_cadastro) {
setNome(p_nome);
setIdFederal(p_cnpj);
setIdEstadual(p_ie);
setCadastro(p_cadastro);
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("nome: ").append(getNome());
return sb.toString();
}

/**
* @param idEstadual The idEstadual to set.
*/
public void setIdEstadualString(String idEstadual) {
setIdEstadual(new InscricaoEstadual(idEstadual));
}
/**
* @param idFederal The idFederal to set.
*/
public void setIdFederalString(String idFederal) {
setIdFederal(new CNPJ(idFederal));
}
}

public class EmpresaDoGrupo {

public static final String CAMPO_APELIDO = "Apelido";

private Integer id;

private PessoaJuridica dadosEmpresa;

private GrupoEmpresarial grupoEmpresarial;

private String apelido;

private String descricao;

public EmpresaDoGrupo() {
//
}

/**
* @param p_apelido
* @param p_grupo
* @param p_dadosEmpresa
*/
public EmpresaDoGrupo(String p_apelido, GrupoEmpresarial p_grupo, PessoaJuridica p_dadosEmpresa) {
setApelido(p_apelido);
setGrupoEmpresarial(p_grupo);
setDadosEmpresa(p_dadosEmpresa);
}

/**
* @return Returns the dadosEmpresa.
*/
public PessoaJuridica getDadosEmpresa() {
return dadosEmpresa;
}

/**
* @param p_dadosEmpresa
* The dadosEmpresa to set.
*/
public void setDadosEmpresa(PessoaJuridica p_dadosEmpresa) {
this.dadosEmpresa = p_dadosEmpresa;
}

/**
* @return Returns the grupoEmpresarial.
*/
public GrupoEmpresarial getGrupoEmpresarial() {
return grupoEmpresarial;
}

/**
* @param grupoEmpresarial
* The grupoEmpresarial to set.
*/
public void setGrupoEmpresarial(GrupoEmpresarial grupo) {
this.grupoEmpresarial = grupo;
}

/**
* @return Returns the id.
*/
public Integer getId() {
return id;
}

/**
* @param id The id to set.
*/
public void setId(Integer id) {
this.id = id;
}

/**
* @return Returns the descricao.
*/
public String getDescricao() {
return descricao;
}

/**
* @param descricao The descricao to set.
*/
public void setDescricao(String descricao) {
descricao = descricao;
}

public String getApelido() {
return this.apelido;
}

public void setApelido(String p_apelido) {
this.apelido = p_apelido;
}

}


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 28, 2005 11:54 am 
CGLIB Developer
CGLIB Developer

Joined: Thu Aug 28, 2003 1:44 pm
Posts: 1217
Location: Vilnius, Lithuania
It looks like you mapped abstract class.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 28, 2005 12:02 pm 
Newbie

Joined: Tue Dec 27, 2005 4:22 pm
Posts: 5
Location: fortaleza/ce - Brasil
I, not undestand you!!!

Sory!!!


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 28, 2005 12:54 pm 
CGLIB Developer
CGLIB Developer

Joined: Thu Aug 28, 2003 1:44 pm
Posts: 1217
Location: Vilnius, Lithuania
Code:
public class PessoaJuridica extends PessoaAbstrata{

private PessoaJuridica() {
//
}

This private constructor is a problem, make it "protected".


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 28, 2005 1:24 pm 
Newbie

Joined: Tue Dec 27, 2005 4:22 pm
Posts: 5
Location: fortaleza/ce - Brasil
very thanks.

Work fine!


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.