Собственный запрос Spring Data JPA не возвращает правильный результат - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть следующий код, где я пытаюсь получить целое число:

woID = (Integer) this.em.createNativeQuery("SELECT fk_workorderid FROM manufacturing.workorders_todos WHERE fk_todoid = ?1")
            .setParameter(1, todoID)
            .getResultList()
            .stream()
            .findFirst()
            .orElse(null);
LOGGER.debug("After native query Todo ID: "+todoID+" / WO ID: "+woID);

В журналах это то, что я вижу:

2018-09-2511: 45: 25,691 https-jsse-nio-8493-exec-8 DEBUG hibernate.SQL - ВЫБРАТЬ fk_workorderid FROM manufacturing.workorders_todos ГДЕ fk_todoid =?

2018-09-25 11: 45: 25,691 https-jsse-nio-8493-exec-8 Загрузчик DEBUG. Загрузчик - bindNamedParameters () 102754 -> 1 [1]

2018-09-25 11: 45: 25,691 https-jsse-nio-8493-exec-8TRACE sql.BasicBinder - параметр привязки [1] как [INTEGER] - [102754]

2018-09-25 11: 45: 25,691 https-jsse-nio-8493-exec-8 Производство отладки.После нативного запроса Todo ID: 102754 / WO ID: null

Однако, если я возьму SQL и поместу его в MySQL Workbench, то получу ожидаемый результат для woID.Что плохого в том, что собственный запрос всегда возвращает ноль?

1 Ответ

0 голосов
/ 26 сентября 2018

GUI (например, mysql workbench) применяется и "order by" также, если это явно не определено в вашем запросе.Вот почему рекомендуется всегда иметь явное и всегда определенное предложение «order by».

В этом учебном пособии вы можете найти методы работы с нулевыми значениями и «order by» в mysql:

https://www.designcise.com/web/tutorial/how-to-order-null-values-first-or-last-in-mysql

...