在where条件下检查不为null

时间:2018-08-06 13:38:59

标签: java sql jooq

我正在寻找实现以下部分的某种方式:

...
where JSON_SEARCH(content, 'one', 'XXX', NULL, "$.lib.books[*].id") is not null;

使用JOOQ。目前我有:

...
   .where(EVENT.SENDERID.eq(userId)
        .and(DSL.condition("JSON_SEARCH({0}, 'one', {1}', NULL, \"\$.lib.books[*].id\")", BOOK.CONTENT, DSL.`val`(bookId, BOOK.CONTENT))))

但无法弄清楚is not null itself

所需要的JSON_SEARCH条件的应用

1 个答案:

答案 0 :(得分:1)

您正在使用DSL.condition(String)生成条件/谓词,而不是列引用。您想要的是DSL.field(String)

.where(EVENT.SENDERID.eq(userId)
    .and(DSL.field("JSON_SEARCH({0}, 'one', {1}', NULL, \"\$.lib.books[*].id\")", 
             BOOK.CONTENT, 
             DSL.`val`(bookId, BOOK.CONTENT)).isNotNull() ))