如何" SELECT SQL_NO_CACHE"使用JOOQ?

时间:2015-08-23 10:49:08

标签: java sql jooq

我试图找到它的文档,但失败了。有人知道吗?

1 个答案:

答案 0 :(得分:1)

有几种方法可以为jOOQ查询添加MySQL风格的提示:

使用.hint()

jOOQ允许通过.hint()方法将“提示”传递给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)包含提示。 E.g。

DSL.using(configuration)
   .select(DSL.field("SQL_NO_CACHE {0}", field1.getDataType(), field1), field2)
   .from(table1)
   .fetch();

使用ExecuteListenerVisitListener

您可以在配置中注入ExecuteListenerVisitListener,以便将所有相关的SQL查询字符串转换为包含SELECT关键字后面的提示。在你的情况下,这可能有点过分,但值得一提的是这是一个选择。