我们正在使用JPA的createNativeQuery,以便我们返回List<Object[]>
;见:https://stackoverflow.com/a/13701011/34806
我们的Java代码希望能够遍历列表并返回具有固定个“字段”(Object
数组中Object
s的对象数组)。但是,如果数据库中的任何字段为空,则Object []数组不包含它们,而是完全跳过此类空字段,以使Object[]
中的“行”(List
数组)包含字段少于其他行 - 这显然有问题。
答案 0 :(得分:0)
我们的解决方案是在查询的SQL中为每个可空字段使用coalesce,以返回除null之外的默认值。例如以下内容:
SELECT EMPNO, COALESCE(SALARY, 0) FROM EMPLOYEE
如果Salary为null,则返回0。请参阅:https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000780.html注意:我刚刚替换了之前的链接,因为它不再有效,遗憾的是可能会再次发生:(我想只是在这种情况下google for“database coalesce”。