JPA Нагрузи списка в datatable [закрывшая]

Добрый день,

В методе я приношу два списка с параметром команда работы (idOrdentrabajo) она первый список загружает меня правильной формой в datatable, но второй список бросает мне следующую ошибку.

Информация: ОШИБКА: 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);


}
-3
задан 12.01.2017, 15:58
0 ответов

У тебя есть ошибка в коде, ты это помещаешь:

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

Но он должен бы быть:

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

В третьей линии ты использовал параметры и не parametros1.

0
ответ дан 03.12.2019, 17:44

Ты определил в твоем классе attr @NamedNativeQuery, чтобы определять SP?

Если не, probá используя Native SQL в вызове

String namedQuery = "CALL OrdentrabajoMaterial.findByIdOrdenTrabajo(:idOrdentrabajo);"
0
ответ дан 03.12.2019, 17:44
  • 1
    Не функционировал равный друг большое спасибо. –  12.01.2017, 15:02
  • 2
    Родные querys занимают много памяти в java, так как они строятся и разрушают. –  12.01.2017, 15:03

Обрати внимание

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);

Ты прошел по параметру, map parametros1, но это не распределил но ты оставил прикрепленным copy линии наверху

parametros.put ("idOrdentrabajo", ordentrabajo);

тогда в parámetros1, прибудь hash map опустошил

1
ответ дан 03.12.2019, 17:44
  • 1
    Он мог бы объяснять мне, что лучше правда осталась немного смущенной, я новый и у меня нет большого количества опыта в теме –  12.01.2017, 16:49
  • 2
    Во втором блоке ты определяешь parametros1, но никогда не делаешь parametros1.put это оставил с parametros.put –  12.01.2017, 23:44