Pessoal estou com um problema que a JPA já esgotou minhas forças.
Estou fazendo uma busca num método FIND, passo o tipo de objeto, e o id, mas o problema é, passo um type USUARIO e ele me retorna um FUNCIONARIO!!! :shock:
Onde um Funcionario extends Usuario.
Detalhe é que no banco eu gero a chave primária do Usuário, e depois ela também é a chave primária e estrangeria do Funcionário, ou seja, gravo alguns dados na tabela de usuário e em seguida dados particulares do tipo funcionário.
método gerérico FIND, fiz o debug, mas coloquei um System.out pra mostrar as saídas:
public PersistenceObject find(IDType id) {
em = getEntityManager();
System.out.println("PASSO 2 "+persistenceClass);
PersistenceObject obj = em.find(persistenceClass, id);
System.out.println("PASSO 3 "+obj.getClass());
return obj;
}
E olhem só a saída:
PASSO 2 class br.com.siac.domain.Usuario
PASSO 3 class br.com.siac.domain.Funcionario
o que está acontecendo, eu passo um objeto do tipo Usuario.class e o id dele pro find da EntityManager, e ela me retorna um Funcionario
e o problema que isso acontece dentro do find da JPA.
Alguém sabe me dizer o porque disso???
lembrando, tenho sempre um usuário e funcionário com mesmas chaves primárias, pois tenho um herança, mas mesmo assim eu passando um tipo Usuario e ele retornar um Funcionário.