我尝试使用以下语法从JOOQ中的哪个位置进行选择:
public final org.jooq.TableField<MyType, java.lang.String> DATE = createField("date", org.jooq.impl.SQLDataType.VARCHAR.length(8), this);
Cursor<MyRecord> cursor =
create.selectFrom(MYTABLE)
.where( MYTABLE.DATE_STRING_COLUMN.greaterOrEqual( ??? ) )
.fetchLazy();
代码生成器知道此列,但将其视为String。 MyType是MyRecord的类型。
我遇到的问题是数据库存储了我需要转换为java.sql.date的数据的字符串。 我想在where子句中调用自定义转换器来转换本机Date类型,这是一个字符串,如&#34; 2014-03-24&#34;到java.sql.Date。 这不起作用的原因是String和Java.sql.Date之间没有类型转换,所以你得到类型不匹配。
问题在于我似乎找不到合适的类型来放入条件(我有三个问号)。
我有一个自定义字段转换器,它实现了带有记录并返回java.sql.Date对象的convert()方法,但我似乎无法获得正确的类型。我现在使用原始SQL字符串来解决它,它看起来像这样:str_to_date(date, '%m-%d-%y') >= now()
有没有人可以在where子句中调用自定义字段转换器?