0 Replies Latest reply on Jul 2, 2015 2:39 PM by Adriano Schmidt

    hibernate - @Inheritance - Bug quando usa JOIN

    Adriano Schmidt Master

        Pessoal, estou com um possível bug no hibernate. Uso aqui a versão 3.6.10.Final

       

        Estou usando @Inheritance do tipo SINGLE_TABLE

       

        @Entity

        public class PessoaCustom extends Pessoa

       

        @Entity

        @Inheritance

        @Table(name = "pessoa")

        public class Pessoa

       

        Quando faço essa query:

       

        getSession().createQuery("SELECT i FROM Pessoa i WHERE i.id = :id").setParameter("id", id).list()

       

        é retornado uma List de PessoaCustom, até aí show de bola!

       

        mas quando faço essa query:

       

        getSession().createQuery("SELECT i FROM Pessoa i WHERE i.objetivo.id = :idObjetivo").setParameter("idObjetivo", idObjetivo).list()

       

        é retornado uma List de Pessoa (e não PessoaCustom), na verdade são javassist, mas do tipo Pessoa.

        por algum motivo quando tem o JOIN isso para de funcionar

       

        se eu forçar asism funciona:

       

        getSession().createQuery("SELECT i FROM PessoaCustom i WHERE i.objetivo.id = :idObjetivo").setParameter("idObjetivo", idObjetivo).list()

       

        isso funciona e retorna a List de PessoaCustom, mas teria que retornar a classe filha mesmo quando eu uso a classe Mae pois o DTYPE de todos os registros estao PessoaCustom

       

        O que eu faco? Nao queria ter que alterar todas as queries do meu sistema para alterar para PessoaCustom manualmente.