我有两个表:真实的_estate:id - PK、external_id_mdm
key_transfer:id -主键,真实的_estate_id - FK(引用真实的_estate(id))
在我的jooq更新查询中,我想更新并获取返回类型:
dsl.update(keyTransfer)
.set(keyTransfer.SEND_OGO, ogo)
.where(keyTransfer.ID.eq(keyTransferId))
.returning(keyTransfer.realEstate().EXTERNAL_ID_MDM)
.fetchOneInto(String.class);
字符串
这给了我一个错误:已通过returning()子句请求列“alias_30603682”.“external_id_mdm”,该子句不存在于表“key_transfer”中。
该消息说我正在访问key_transfer表,但实际上我正在通过FK访问真实的_estate。
在过去的几次我要求这样的请求在选择查询,它的工作.这一次是怎么回事?
我希望通过FK获取字符串类型的字段external_id_mdm。
1条答案
按热度按时间wkyowqbh1#
从jOOQ 3.19开始,还不支持来自DML
RETURNING
子句的隐式联接,请参阅:你必须使用
UPDATE .. FROM
显式地连接REAL_ESTATE
表,如下所示:字符串
请注意,为了获取仅由
EXTERNAL_ID_MDM
列组成的Record1<String>
,您必须使用returningResult()
,而不是returning()
。有关详细信息,请参阅相关的Javadoc。