我应该只在JOOQ上禁用UInteger类型吗?

时间:2019-05-21 13:34:01

标签: java sql jooq

我一直在尝试编写一些查询(对于MySQL),但我不确定如何编写涉及Integer和UInteger类型的特定查询:

DSL.position(T1.FIELD, ":", -1).eq(T2.UINTFIELD)

position返回一个Field<Integer>,所以我不能简单地将此结果与我的Field<UInteger>进行比较。有没有简单的方法可以实现?我想保留正确的字段类型以进行进一步的验证。

1 个答案:

答案 0 :(得分:1)

您可以为此使用DSL.cast()DSL.coerce()。我建议胁迫。

  • DSL.cast()生成所需类型的SQL强制转换表达式和jOOQ字段引用
  • DSL.coerce()不会影响生成的SQL,但仍会生成所需类型的jOOQ归档引用。

例如:

position(T1.FIELD, ":", -1).eq(coerce(T2.UINTFIELD, SQLDataType.INTEGER))