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.