我有以下代码尝试获取整数:
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-25 11:45:25,691 https-jsse-nio-8493-exec-8调试hibernate.SQL -从manufacturing.workorders_todos中选择fk_workorderid,其中fk_todoid =吗?
2018-09-25 11:45:25,691 https-jsse-nio-8493-exec-8调试加载程序。 -bindNamedParameters()102754-> 1 [1]
2018-09-25 11:45:25,691 https-jsse-nio-8493-exec-8 TRACE sql.BasicBinder-绑定参数[1]为[INTEGER]-[102754]
2018-09-25 11:45:25,691 https-jsse-nio-8493-exec-8调试 manufacturing.ToDoFunctions-在本机查询Todo ID之后:102754 / WO ID:空
但是,如果我使用SQL并将其放在MySQL Workbench中,则可以获得woID的预期结果。原生查询总是返回null怎么了?
答案 0 :(得分:0)
如果您的查询中未明确定义,则GUI(例如mysql工作台)也适用,并且“按...排序”。这就是为什么始终定义“ order by”子句是一种好习惯的原因。
在本教程中,您可以找到如何在mysql中处理空值和“ order by”的技术:
https://www.designcise.com/web/tutorial/how-to-order-null-values-first-or-last-in-mysql