如何"SELECT SQL_NO_CACHE"使用JOOQ?
How to "SELECT SQL_NO_CACHE" using JOOQ?
我试图找到它的文档,但失败了。有人知道吗?
有几种方法可以向 jOOQ 查询添加 MySQL 风格的提示:
使用.hint()
jOOQ 允许通过 .hint()
方法将 "hints" 传递给 SELECT
语句,如手册中所述:
http://www.jooq.org/doc/latest/manual/sql-building/sql-statements/select-statement/oracle-hints
将 SQL_NO_CACHE
提示应用于手册中给出的示例,您将得到:
DSL.using(configuration)
.select(field1, field2)
.hint("SQL_NO_CACHE")
.from(table1)
.fetch();
使用普通 SQL
您可以使用简单的 SQL 调整 SELECT
子句中的第一个字段以包含使用 DSL.field(String)
的提示。例如
DSL.using(configuration)
.select(DSL.field("SQL_NO_CACHE {0}", field1.getDataType(), field1), field2)
.from(table1)
.fetch();
使用 ExecuteListener
或 VisitListener
您可以将 ExecuteListener
or a VisitListener
注入到您的配置中,以便将所有相关的 SQL 查询字符串转换为在 SELECT
关键字之后包含提示。在您的情况下,这可能有点矫枉过正,但值得一提的是,这是解决此类问题的一种选择。
我试图找到它的文档,但失败了。有人知道吗?
有几种方法可以向 jOOQ 查询添加 MySQL 风格的提示:
使用.hint()
jOOQ 允许通过 .hint()
方法将 "hints" 传递给 SELECT
语句,如手册中所述:
http://www.jooq.org/doc/latest/manual/sql-building/sql-statements/select-statement/oracle-hints
将 SQL_NO_CACHE
提示应用于手册中给出的示例,您将得到:
DSL.using(configuration)
.select(field1, field2)
.hint("SQL_NO_CACHE")
.from(table1)
.fetch();
使用普通 SQL
您可以使用简单的 SQL 调整 SELECT
子句中的第一个字段以包含使用 DSL.field(String)
的提示。例如
DSL.using(configuration)
.select(DSL.field("SQL_NO_CACHE {0}", field1.getDataType(), field1), field2)
.from(table1)
.fetch();
使用 ExecuteListener
或 VisitListener
您可以将 ExecuteListener
or a VisitListener
注入到您的配置中,以便将所有相关的 SQL 查询字符串转换为在 SELECT
关键字之后包含提示。在您的情况下,这可能有点矫枉过正,但值得一提的是,这是解决此类问题的一种选择。