Hibernate: Descobrir se um objeto é um proxy

2 respostas
plentz

Buenas, teria algum método de descobrir se a instância de um objeto está inicializada ou se é um proxy?

PS: Hibernate.isInitialized não serve porque se o objeto passado como parâmetro for um proxy, ele retorna true.

2 Respostas

cv1

Voltando um pouco… pq vc precisa disso?

plentz

Bom, vamos lá:

  • base atual do cliente possui uma coisa adorável que são defaults para as FK’s de algumas tabelas (exemplo: pessoa possui fk para cidade, mas se não for informada cidade, ele taca zero).
  • quando mando carregar meu objeto para fazer alguma manipulação, e faço o load lazy da cidade por exemplo, ele lança um ObjectNotFoundException. Mas esse eu trato no DAO. Até ai tudo bem.
  • O problema é que fica a proxy lá, e se eu tento fazer um “pessoa.getCidade()” depois e estiver com o proxy, vai dar problema.

Eu tendo uma forma de verificar se é ou não um proxy, poderia fazer o tratamente que preciso, que seria algo do tipo:

if(Hibernate.isAProxy(pessoa.getCidade())){ pessoa.setCidade(new Cidade()); }

Criado 13 de agosto de 2006
Ultima resposta 13 de ago. de 2006
Respostas 2
Participantes 2