我在JOOQ中有一个查询,其中包含一个带有另一个表的左OUTER JOIN。这是有意的,因为不能保证相应的记录会存在,在这种情况下,我仍然希望从以前的表中检索值,并为缺失的字段提供默认值。
但是,由于带有默认参数的getValue()
函数已被弃用,我如何检查字段是否包含空值?
使用字符串很容易,但布尔值只返回为false
,这意味着我无法检查它是否真的设置为false,或者它正是JOOQ决定返回的。
我试过:
if (record.field(MY_TABLE.SOME_BOOLEAN) != null) {
...
}
但是这不起作用,因为field()
函数的返回值不是null,即使字段的值是null。我也试过
if (record.field(MY_TABLE.SOME_BOOLEAN).isNull()){
...
}
但这不是一个有效的Java条件。
提前感谢!
你所尝试的不会奏效:
if (record.field(MY_TABLE.SOME_BOOLEAN) != null) { }
Record.field()
将返回一个Field
引用。这个想法是,您的记录可能不是从MY_TABLE
创建的,但它可能仍然包含一个SOME_BOOLEAN
列,Record.field()
将从记录返回该SOME_BOOLEAN
列...
你要找的只是:
if (record.get(MY_TABLE.SOME_BOOLEAN) != null) { }
请注意,jOOQ无法区分SOME_BOOLEAN
列是否实际上是数据库中的NULL
,或者LEFT JOIN
是否没有返回任何行。这就是SQL的工作原理。如果要检查左连接是否实际找到了子行,可以在
非空
列中检查null
值,例如主键:
if (record.get(MY_TABLE.ID) != null) { }
超文本传输协议GET方法的响应如下所示: 在前端,我想检查属性是否为空。我尝试过这种方法,但不起作用
我有几个JOOQ存储库,它们从Postgres数据库获取数据,并将数据作为值对象提供。我使用JOOQ 3.10.7和一切工作正常。我已经将我的Spring启动版本从2.0.3升级到2.1.4,这将JOOQ版本升级到3.11.10。在映射Jooq记录时,我开始获取NullPointerExcema。 在上述场景中,当没有与给定条件(user.id.eq(1))匹配的记录时,fetchSingle必须
有了jOOQ惊人的多集算子,我们能够查询嵌套列表并将其映射到pojo对象。现在,我试图找到一种方法来同时映射单个嵌套对象。例如,我有一个组合的自定义pojo类,如: 我想在一个步骤中查询并获取它。因此,我目前的工作解决方案是: 这包括一个预初始化的字段列表,其目的是以某种方式告诉JOOQ从“教师”映射教师对象。*”列。 我现在想知道在这方面是否有更直观的解决方案。我曾尝试使用row运算符,但到目前
这非常慢,并且refmdlist._id没有索引。解决方案是索引这个数组对象字段以加快速度,还是上面的DBCursor代码有问题? DBCursor类来自mongodb/mongo-java-driver/3.4.3/mongo-java-driver-3.4.3.jar
通常,我可以看到如下代码结构: 我想知道是否有任何广泛使用的库(Google、Apache等)可以同时检查多个对象的空性,例如: 或 更新: > 我完全知道怎么自己写 我知道这可能是程序结构不佳的结果,但在这里不是个案 让我们使它更具挑战性,并用这样的内容替换原始示例: 更新2: 我已经为Apache Commons Lang库创建了一个pull请求,以修复这个漏洞: 问题:https://iss
Jooq生成器是否支持扩展提供给生成器的自定义类? 我想生成扩展自定义提供类的记录,该类将扩展TableRecordImpl。 我想进入继承链,其中UpdateableRecordImpl将扩展MyRecord,MyRecord将扩展TableRecordImpl?