java .lang.illegalargumentexception для этого имени не определен запрос [...] - PullRequest
1 голос
/ 15 февраля 2020

У меня есть собственный запрос в pl sql, как это;

create or replace package body DBPK_Monitoring is
  PROCEDURE monitoring_Search(cur OUT SYS_REFCURSOR,) is
    query       VARCHAR(30000);
    whereClause VARCHAR(10000);

  BEGIN
    whereClause := whereClause || '  and   ( cnt.contract_status!=7)';

    query := ' select itemTitle as "itemTitle", numberOfRow as "numberOfRow" ,
               orderNumber as "orderNumber",createDate as "createDate",
               priorityNumber as  "priorityNumber"  
        from buy_buy_order bbo
       inner join buy_buy_order_item bbi
          on bbi.buy_order_id = bbo.id
        left outer join core_User_Role shoUserRole
          on shoUserRole.id = bbi.buy_Expert_Id      

         ' || whereClause || ' order by ' || orderBy ||
             ') e  WHERE e.rowNO>  ' || lower_Bound || ' and e.rowNO<=' ||
             upper_Bound;
    OPEN cur FOR query
  end monitoring_Search;

end DBPK_Monitoring;

Я использую этот запрос в репозитории с hql, например:

 Session session = getSession();
        Query query = session.getNamedQuery("monitoring_Search").setResultTransformer(Transformers.aliasToBean(MonitoringDto.class));
        int firstResultIndex = searchOption.getPageNumber() * searchOption.getPageSize();
        query.setInteger("lower_Bound", firstResultIndex);
        query.setParameter("upper_Bound", firstResultIndex + searchOption.getPageSize());
        query.setString("orderBy", searchOption.getOrder());
        query.setParameter("buyOrderNumber", buyOrderNumber);        
        List<MonitoringDto> list = query.list();
        int count = (list.size() > 0L) ? list.get(0).getNumberOfRow() : 0;
        return new QueryResult<MonitoringDto>(searchOption.getPageNumber(), count, searchOption.getPageSize(), list);

Когда я запускаю программу , Я получаю эту ошибку:

java .lang.illegalargumentexception, для этого имени не определен запрос [мониторинг_Поиск]

Как я могу это исправить?

1 Ответ

0 голосов
/ 16 февраля 2020

Вы должны определить monitor_search как именованный запрос Hibernate, подробности об этом можно увидеть по этой ссылке: https://www.baeldung.com/hibernate-named-query хорошего дня и kiss людей вокруг вас;)

...