JPA Loading a list in datatable [closed]

-3

Good morning,

In one method I am bringing two lists with the work order parameter ( idOrdentrabajo ) the first list loads me correctly in a datatable but the second list gives me the following error.

  

Information: ERROR: Query argument idOrdentrabajo not found in the list of parameters provided during query execution.

    public void listenerOrdenTrabajoProductoYMateriales() {

    //System.out.println("id " + ordentrabajo.getId());

    String namedQuery = "OrdentrabajoProducto.findByIdOrdenTrabajo";
    Map<String, Object> parametros = new HashMap<>();
    parametros.put("idOrdentrabajo", ordentrabajo);
    ordentrabajoProductoList = ordentrabajoProductoFacade.findByNamedQuery(namedQuery, parametros);

    String namedQuery1 = "OrdentrabajoMaterial.findByIdOrdenTrabajo";
    Map<String, Object> parametros1 = new HashMap<>();
    parametros.put("idOrdentrabajo", ordentrabajo);        
    ordentrabajoMaterialist = ordentrabajoMaterialFacade.findByNamedQuery(namedQuery1, parametros1);


}
    
asked by Alexander Gil Tafur 12.01.2017 в 13:36
source

3 answers

1

Look

String namedQuery = "OrdentrabajoProducto.findByIdOrdenTrabajo";
Map<String, Object> parametros = new HashMap<>();
parametros.put("idOrdentrabajo", ordentrabajo);
ordentrabajoProductoList = ordentrabajoProductoFacade.findByNamedQuery(namedQuery, parametros);

String namedQuery1 = "OrdentrabajoMaterial.findByIdOrdenTrabajo";
Map<String, Object> parametros1 = new HashMap<>();
parametros.put("idOrdentrabajo", ordentrabajo);        
ordentrabajoMaterialist = ordentrabajoMaterialFacade.findByNamedQuery(namedQuery1, parametros1);

You passed by parameter, the map parameters1, but you did not assign it but you left the copy of the line above stuck

parametros.put ("idOrdentrabajo", ordentrabajo);

then in parameters1, the empty map hash is arriving

    
answered by 12.01.2017 в 15:20
0

Did you define the attr @NamedNativeQuery in your class to define the SP?

If not, try using Native SQL on the call

String namedQuery = "CALL OrdentrabajoMaterial.findByIdOrdenTrabajo(:idOrdentrabajo);"
    
answered by 12.01.2017 в 13:50
0

You have an error in the code, you put this:

String namedQuery1 = "OrdentrabajoMaterial.findByIdOrdenTrabajo";
Map<String, Object> parametros1 = new HashMap<>();
parametros.put("idOrdentrabajo", ordentrabajo);        
ordentrabajoMaterialist = ordentrabajoMaterialFacade.findByNamedQuery(namedQuery1, parametros1);

But it should be:

String namedQuery1 = "OrdentrabajoMaterial.findByIdOrdenTrabajo";
Map<String, Object> parametros1 = new HashMap<>();
parametros1.put("idOrdentrabajo", ordentrabajo);        
ordentrabajoMaterialist = ordentrabajoMaterialFacade.findByNamedQuery(namedQuery1, parametros1);

In the third line you were using parameters and not parameters1.

    
answered by 12.01.2017 в 14:27