Pessoal Boa Tarde,
Estou utilizando o XStream (API parseamento XML -> Objeto), esta API é muito boa, pois eu transformo um XML em 110 entidades em milisegundos.
Mas estou com um problema na transformação da Entidade para XML.
Estou utilizando Hibernate, com as Entidades anotadas.
Vou descrever os passos do que esta ocorrendo para facilitar a solução.
1º- Resgato a Entidade da base de dados com o findById
Object obj = daoLocal.findById(idLong);
Este meu Objeto possui um array de outro objeto, que é FetchType.LAZY portanto o hibernate não me traz este objeto sem solicitação de pelo get.
2º- Logo após envio para o XStream realizar o parseamento.
String xml = xstream.toXML(obj);
3º- O XML gerado é este:
<owner class="infCTeNorm" reference=".."/>
<cachedSize>-1</cachedSize>
<role>br.com.cscorp.cte.entity.InfCTeNorm.veicNovos</role>
<key class="long">152</key>
Pelo meu XSD não posso ter uma tag <owner class= , portanto gostaria de saber qual o motivo ele não recupera o Segundo Objeto. (SubObjeto)
No meu entendimento tem uma possivel explicação:
- Como o objeto retornado pelo Hibernate não é na verdade uma entidade REAL, é um [color=red] PROXY [/color], O XStream não consegue parsear pois deve usar Reflection e não é invocado o get() de verdade, portanto ele não obtem as informações do banco.
Gostaria de uma solução, pois acredito que o alguem já tenha passado por este problema.
Obrigado a todos.
Guilherme