Olá, analise o seguinte cenário, tenho uma classe Abstrata Pessoa e tenho N classes que extendem ela, como cliente, fornecedor, etc… como segue abaixo:
------------------------------------------------------------------------------------------------------------------------------------------------------------
@Entity
@Table(name="pessoa", schema="public", uniqueConstraints = {@UniqueConstraint(columnNames = {"pess_cpfcnpj", "empe_id"})})
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class Pessoa {
------------------------------------------------------------------------------------------------------------------------------------------------------------
@Entity
@Table(name="cliente", schema="public")
public class Cliente extends Pessoa {
------------------------------------------------------------------------------------------------------------------------------------------------------------
@Entity
@Table(name="fornecedor", schema="public")
public class Fornecedor extends Pessoa {
------------------------------------------------------------------------------------------------------------------------------------------------------------
Note que as classes estão em tabelas separadas, usando DAO generico estou montando a parte de pesquisa com critéria, eu gostaria de informar ao critéria qual classe utilizar, estou passando um cliente mas mesmo assim a consulta me retorna fornecedores também.
@SuppressWarnings ({ "unchecked", "finally" })
@Override
public List<Pessoa> filtragem(Pessoa e) {
Filter f = FactoryFilter.createFilter();
return (ArrayList<Pessoa>) objDao.filtragem(f);
}
Utilizando o ScannerJPAEntity reparei que existe uma propriedade dentro do Filter chamada de “Representation class” e ele seta Cliente.class. Alguma dica ?
