【发布时间】:2018-01-31 17:35:28
【问题描述】:
我想知道是否有人可以帮助我将表格对象类型从 Long 转换为 BigDecimal?
在sql中,代码是这样的:
AND table_nameA.row_name = table_nameB.row_name
在jooq中很简单:
and(table_nameA.row_name.eq( table_nameB.row_name))
我尝试使用
进行投射Select <? extends Record1<BigDecimal> 但我收到了ClassCastException org.jooq.immpl.TableFieldImpl cannot be cast to org.jooq.Select。
当我尝试使用 (BigDecimal) 投射它时,我收到了 ClassCastException org.jooq.immpl.TableFieldImpl cannot be cast to java.math.BigDecimal。
谢谢。
【问题讨论】:
-
为什么你真的应该做这个演员?
TableField<BigDecimal> table_nameA.row_name = TableField<Long> table_nameB.row_name看起来不像 sql -
abc.ABC_DEF_PAR_NUMBER 在 Jooq 中的数据类型在 BigDecimal 中定义/生成,而在 Jooq 中的 def.DEF_PAR_NUMBER 数据类型在 Long 中定义/生成。我不被允许。发布真正的实际sql语句,如果我这样做,我会被解雇。
-
为什么我真的要进行这种铸造?因为jooq以两种不同的数据类型生成了这两个,我不知道为什么。实际 sql 语句中的一个示例是 AND abc.ABC_DEF_PAR_NUMBER = def.DEF_PAR_NUMBER。在 jooq 中应该和 .and(abc.ABC_DEF_PAR_NUMBER.eq(ef.DEF_PAR_NUMBER)) 一样简单。
-
尝试使用强制 jooq 类型转换器重新生成您的模式 stackoverflow.com/questions/23979524/…