JOOQ:希望将DSL转换为内联

  • 本文关键字:转换 DSL 希望 JOOQ jooq
  • 更新时间 :
  • 英文 :


我有一个类似DSL的

DSL.case_().when(field.equal('5'), true).else_(false)

它正在创建绑定值。。

我不想要绑定值。。(对于某些特定的用例..绑定值不起作用(

使用DSL.inline并不能解决这个问题。。。

用于基于字符的字段。

when "my field name" = ''1'' then false
else true

如何使其内联&它应该能够处理各种字段数据类型?

从您的评论中,我认为出于某种原因,您使用DSL.inline(T)包装了整个表达式,但这不是它的工作方式。它不接受任意表达式,并强制其内容内联。它只需要一个并将其内联,另请参阅手册。因此,在您的情况下,它使用您的表达式作为绑定值(对其调用toString()(。

您想要的是用DSL.inline()包装每个单独的值,例如:

when(field.eq(inline("5")), inline(true)).else_(inline(false))

或者,可以将StatementType.STATIC_STATEMENT全局设置为内联所有绑定值。

最新更新