我一直在尝试编写一些查询(对于MySQL),但我不确定如何编写涉及Integer和UInteger类型的特定查询:
DSL.position(T1.FIELD, ":", -1).eq(T2.UINTFIELD)
position
返回一个Field<Integer>
,所以我不能简单地将此结果与我的Field<UInteger>
进行比较。有没有简单的方法可以实现?我想保留正确的字段类型以进行进一步的验证。
答案 0 :(得分:1)
您可以为此使用DSL.cast()
或DSL.coerce()
。我建议胁迫。
DSL.cast()
生成所需类型的SQL强制转换表达式和jOOQ字段引用DSL.coerce()
不会影响生成的SQL,但仍会生成所需类型的jOOQ归档引用。例如:
position(T1.FIELD, ":", -1).eq(coerce(T2.UINTFIELD, SQLDataType.INTEGER))