Estou procurando formas de fazer fazer cast sem a necessidade ficar formatando o objeto na mão.Vi que com o @@SqlResultSetMapping é possível fazer . Porém no meu caso eu querendo fazer uma consulta de uma FUNCTION porém só obtenho o erro " Unknown entity: "
@SqlResultSetMapping(name = "mappingBasePdvCadastrado", classes = {
@ConstructorResult(columns = { @ColumnResult(name = "status_cp_chip", type = String.class),
@ColumnResult(name = "status_cp_combo", type = String.class),
@ColumnResult(name = "status_cp_rec", type = String.class),
}, targetClass = ProcBasePdv.class) })
public class ProcBasePdv {
private String status_cp_chip;
private String status_cp_combo;
private String status_cp_rec;
public ProcBasePdv(String status_cp_chip, String status_cp_combo, String status_cp_rec) {
super();
this.status_cp_chip = status_cp_chip;
this.status_cp_combo = status_cp_combo;
this.status_cp_rec = status_cp_rec;
}
public ProcBasePdv() {
}
public void testa() {
String query =
"select "
+ "status_cp_chip "
+ "status_cp_combo "
+ "status_cp_rec "
+ "from TABLE("
+ "PACK_EXP_ESTOQUE.FNC_EXP_ESTQ_COMPL"
+ "(NULL,'32,34,37,35,36,39,38,40,41','DF',NULL,NULL,NULL,NULL,NULL)) "
+ "WHERE "
+ "(FG_ATIVO_COMBO = 'Ativo' OR FG_ATIVO_CHIP = 'Ativo' or FG_ATIVO_CHIP = 'Ativo')";
Query nativeQuery = em.createNativeQuery(query,"mappingBasePdvCadastrado");
nativeQuery.setMaxResults(10);
List<ProcBasePdv> lista = nativeQuery.getResultList();
for (ProcBasePdv procBasePdv : lista) {
System.out.println(procBasePdv);
}
}