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

标签 java sql jooq

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

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

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

最佳答案

您可以使用DSL.cast()DSL.coerce()为了这。我建议强制。

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

例如:

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

关于java - 我应该在 JOOQ 上禁用 UInteger 类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56239501/

相关文章:

java不支持的操作异常

java - 使用 SmartGWT 包装预制元素?

java - SQLite 准备语句的转义替代方案

java - jOOQ - 加入嵌套子查询

sql - jOOQ 多个表的聚合函数

hibernate - 如何将 ResultSet 对象转换为 Hibernate Entity Bean

java - Iterable 和常规数组是否有 'superclass'?

java - 一个字符串中有多个方法?

mysql - 在验证第三范式的数据库逻辑模式时需要一些帮助

mysql - 摆脱获取每个组中第一个元素的查询中的子查询