我有一个类似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
全局设置为内联所有绑定值。