@Override
public List<MaestroTablaDTO> buscarMaestroTabla(MaestroTablaDTO maestroTablaDTO) {
LOG.info("Inicio -- MaestroTablaDAOImpl -- buscarMaestroTabla");
List<MaestroTablaDTO> retornoListaMaestroTablaDTO = null;
try {
/** Armando query */
String queryString;
StringBuilder jpql = new StringBuilder();
jpql.append("SELECT new MaestroTabla ");
jpql.append("(");
jpql.append("mt.id,mt.dominio,mt.descripcion,mt.esEditable,mt.estado, ");
jpql.append("mt.usuarioCreacion,mt.fechaCreacion,mt.terminalCreacion, ");
jpql.append("mt.usuarioActualizacion,mt.fechaActualizacion,mt.terminalActualizacion, ");
jpql.append("(SELECT max(mc.id) from MaestroColumna mc where mc.estado=1 and mc.dominio=mt.dominio) AS numeroColumnas ");
jpql.append(") ");
jpql.append("FROM MaestroTabla mt ");
if(maestroTablaDTO.getEstado()!=null && !maestroTablaDTO.getEstado().isEmpty()){
jpql.append("WHERE mt.estado =:estado ");
}
if(maestroTablaDTO.getIdMaestroTabla()!=null && !maestroTablaDTO.getIdMaestroTabla().isEmpty()){
jpql.append(" and mt.id =:idMaestroTabla ");
}
if(maestroTablaDTO.getDominio()!=null && !maestroTablaDTO.getDominio().isEmpty()){
jpql.append(" and mt.dominio like :dominio ");
}
if(maestroTablaDTO.getDescripcion()!=null && !maestroTablaDTO.getDescripcion().isEmpty()){
jpql.append(" and mt.descripcion like :descripcion ");
}
jpql.append(" ORDER BY mt.descripcion ASC ");
/** Creando query */
queryString = jpql.toString();
Query query = crud.getEm().createQuery(queryString);
System.out.println("<<queryString>>"+queryString);
/** Setteando parámetros */
if(maestroTablaDTO.getEstado()!=null && !maestroTablaDTO.getEstado().isEmpty()){
query.setParameter("estado", maestroTablaDTO.getEstado());
}
if(maestroTablaDTO.getIdMaestroTabla()!=null && !maestroTablaDTO.getIdMaestroTabla().isEmpty()){
query.setParameter("idMaestroTabla", Integer.parseInt(maestroTablaDTO.getIdMaestroTabla()));
}
if(maestroTablaDTO.getDominio()!=null && !maestroTablaDTO.getDominio().isEmpty()){
query.setParameter("dominio","%"+StringUtil.removeBlank(maestroTablaDTO.getDominio()).toUpperCase()+"%");
}
if(maestroTablaDTO.getDescripcion()!=null && !maestroTablaDTO.getDescripcion().isEmpty()){
query.setParameter("descripcion","%"+StringUtil.removeBlank(maestroTablaDTO.getDescripcion()).toUpperCase()+"%");
}
/** Recuperar lista en DTO */
retornoListaMaestroTablaDTO = MaestroTablaBuilder.getListMaestroTablaDomainToDto(query.getResultList());
} catch (Exception e) {
LOG.error("error MaestroTablaDAOImpl -- buscarMaestroTabla",e.getMessage());
System.out.println("<<e.getMessage()>>"+e.getMessage());
}
LOG.info("Inicio -- MaestroTablaDAOImpl -- buscarMaestroTabla");
return retornoListaMaestroTablaDTO;
}
It gives me the following exception: < > "AS" has been found in character 299, but was expected: [")", "*", "+", ",", "-", "/"]. " when analyzing JPQL "SELECT new MasterTable (mt.id, mt.domain, mt.description, mt.esEditable, mt.estado, mt.usuarioCreacion, mt.fechaCreacion, mt.terminalCreacion, mt.usuarioUpdate, mt.dateActualization, mt. terminalUpdate, (SELECT max (mc.id) from MasterColumn mc where mc.estado = 1 and mc.domain = mt.domain) AS numberColumns) FROM MasterTable mt WHERE mt.estado =: ORDER BY state mt.Description ASC ". Check the trace of the nested stack to get the initial analysis error.