Spring Data JPA本机查询未返回正确的结果

时间:2018-09-25 18:01:22

标签: hibernate spring-data-jpa

我有以下代码尝试获取整数:

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怎么了?

1 个答案:

答案 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