Postgresql 为特定JOOQ列自动强制转换RHS值

Postgresql 为特定JOOQ列自动强制转换RHS值,postgresql,jooq,Postgresql,Jooq,我有以下代码,其中CI_COL是citext类型 第一个查询返回0,第二个查询正确返回>0 我花了很长时间才找到根本原因,因为当在调试日志中打印或找到第一个查询时,它似乎在终端中执行得很好 一旦我进入语句级别并实际开始绑定值,这就是根本原因。这似乎是一个问题或故意在博士后司机。这篇文章说明了citext的绑定问题: 通过让JOOQ自动对特定列的所有右侧值执行强制转换,是否可以在JOOQ级别解决此问题 旁注 String str = "testING"; int countBad = conte

我有以下代码,其中CI_COL是citext类型

第一个查询返回0,第二个查询正确返回>0

我花了很长时间才找到根本原因,因为当在调试日志中打印或找到第一个查询时,它似乎在终端中执行得很好

一旦我进入语句级别并实际开始绑定值,这就是根本原因。这似乎是一个问题或故意在博士后司机。这篇文章说明了citext的绑定问题:

通过让JOOQ自动对特定列的所有右侧值执行强制转换,是否可以在JOOQ级别解决此问题

旁注
String str = "testING";

int countBad = context.fetchCount(select(Tables.MY_TABLE.CI_COL)
  .from(Tables.MY_TABLE)
  .where(Tables.MY_TABLE.CI_COL.eq(str)));

int countGood = context.fetchCount(select(Tables.MY_TABLE.CI_COL)
  .from(Tables.MY_TABLE)
  .where(Tables.MY_TABLE.CI_COL.eq(cast(str, new DefaultDataType<>(SQLDialect.POSTGRES, String.class, "citext")))));
new DefaultDataType<>(...)
@Override
public void sql(BindingSQLContext<JsonElement> ctx) throws SQLException {
    ctx.render().sql("?::citext");
}