Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用jOOq时,如何将参数值用括号括起来?_Java_Sql_Jooq_Hybris_Flexible Search - Fatal编程技术网

Java 使用jOOq时,如何将参数值用括号括起来?

Java 使用jOOq时,如何将参数值用括号括起来?,java,sql,jooq,hybris,flexible-search,Java,Sql,Jooq,Hybris,Flexible Search,我使用jOOq来编写查询,但我使用的是特定于供应商的SQL类型。。。具体要灵活搜索。SQL和FlexSearch之间的主要区别在于,参数值用花括号括起来。e、 g SELECT * FROM {Product} WHERE {code} LIKE ‘%al%’ 所以我要做的是让jOOq自动截取查询构建过程以包含括号 通过查看文档,我似乎应该实现某种类型的执行侦听器?但我不知道那之后该怎么办。谢谢您确实可以实现一个取代 每个奇数“由{和每个偶数”由}使用任何方言(注意语法歧义) 每个奇数`a{

我使用jOOq来编写查询,但我使用的是特定于供应商的SQL类型。。。具体要灵活搜索。SQL和FlexSearch之间的主要区别在于,参数值用花括号括起来。e、 g

SELECT * FROM {Product} WHERE {code} LIKE ‘%al%’
所以我要做的是让jOOq自动截取查询构建过程以包含括号


通过查看文档,我似乎应该实现某种类型的执行侦听器?但我不知道那之后该怎么办。谢谢

您确实可以实现一个取代

  • 每个奇数
    {
    和每个偶数
    }
    使用任何方言(注意语法歧义)
  • 每个奇数
    `a
    {
    和每个偶数
    `a
    }
    使用MySQL方言
  • 每个
    [
    {
    和每个
    ]
    }
    使用SQL Server方言
但据我所知,这并不是您在生成的SQL中要修补的唯一内容,因此您不妨使用jOOQ开源版本,自己修补相关代码


注意,jOOQ并不真正支持这种特殊的方言。这不是你唯一会遇到的事情。例如,您可以尝试在
ExecuteListener
中对子查询进行模式匹配,并将它们包装在
{…}
中,但直接修补jOOQ也会更容易实现。

此外,您还需要-1。在桌子和它们的连接处放上大括号。2.在子查询周围应用双大括号。为了确保查询格式匹配。嗨@Lukas,谢谢你的回复,这真的很有见地。我尝试过重写
DefaultVisitLister
(我需要呈现sql字符串),但我很难使用呈现上下文用括号替换引号。这就是我尝试的
context.renderContext().render().replaceAll(“[
]”,“[””),但我得到了NullPointer@user1272052:我很乐意用例子回答新问题,展示你做了什么,以及你得到的问题的更多信息。