【发布时间】:2018-01-02 16:51:32
【问题描述】:
我对使用主键进行查询的表进行了简单查询。
dslContext.select(XXX.NAME)
.from(XXX)
.where(
XXX.ID.eq(id)
.and(XXX.LEVEL.eq(2))
.and(XXX.NAME.isNotNull())
)
.fetchOne().into(String.class);
在我的情况下,对于特定 id,查询结果为空集。但是jooq似乎抛出了一个NPE。当我进一步调查时,fetchOne() 调用了CursorImpl.fetchOne()。这会检查结果的大小,如果不是 1,则返回 null。我有一个链接的into(String.class),它会在这个空值上被调用,因此会导致 NPE。
我不想调用 fetch() 并遍历结果/获取列表的第一个元素。
是否有另一种编写查询的方法,如果没有数据,它会抛出org.jooq.exception.NoDataFoundException?
【问题讨论】: