我正在使用 jOOq 编写查询,除了我使用供应商特定类型的 SQL... 来进行特定的灵活搜索。SQL 和 flexiSearch 的主要区别在于参数值用大括号括起来。例如
SELECT * FROM {Product} WHERE {code} LIKE ‘%al%’
所以我想要做的是让 jOOq 自动拦截查询构建过程以包含括号。
浏览文档,似乎我应该实现某种执行侦听器?但我不确定在那之后该怎么做。谢谢
我正在使用 jOOq 编写查询,除了我使用供应商特定类型的 SQL... 来进行特定的灵活搜索。SQL 和 flexiSearch 的主要区别在于参数值用大括号括起来。例如
SELECT * FROM {Product} WHERE {code} LIKE ‘%al%’
所以我想要做的是让 jOOq 自动拦截查询构建过程以包含括号。
浏览文档,似乎我应该实现某种执行侦听器?但我不确定在那之后该怎么做。谢谢
你确实可以实现一个ExecuteListener
替换
"
使用任何方言的每一个奇数{
和每一个偶数(注意句法歧义)"
}
`
的每一个奇数{
和每一个偶数`
}
[
一个{
和每]
一个}
但据我所知,这不是您要在生成的 SQL 中修补的唯一内容,因此您不妨分叉 jOOQ 开源版并自己修补相关代码。
请注意,jOOQ 并不真正支持这种特殊的方言。这不是你会遇到的唯一事情。例如,您可以尝试在 an 中对子查询进行模式匹配ExecuteListener
并将它们包装在 中{{ ... }}
,但是通过直接修补 jOOQ 也更容易实现。