如何解决具有自定义字段绑定的Jooq批处理插入
批量插入时出现以下问题:
dslContext.batch(
dslContext.insertInto(
TABLE,FIELD_1,FIELD_2,FIELD_3,FIELD_4_TS_VECTOR
).values(0L,"","")
.onConflictDoNothing()
).bind(value1,value2,value3,value4.toTsvector())
.execute()
toTsvector在哪里:
private fun String.toTsvector() =
DSL.field("to_tsvector('simple',{0})",this)
在这种情况下,似乎DSL.field无法正常工作,因为与其绑定,它没有返回值,而是执行了以下查询:
org.jooq.exception.DataAccessException: SQL [insert into "table" ("field_1","field_2","field_3","field_4_ts_vector") values (?,?,?) on conflict do nothing]; Batch entry 0 insert into "table" ("field_1","field_4_ts_vector") values (100500,'value2','value3','value4') on conflict do nothing was aborted: ERROR: column "field_4_ts_vector" is of type tsvector but expression is of type character varying
但是如果使用“常规”插入,一切正常:
dslContext.insertInto(
TABLE,FIELD_4_TS_VECTOR
).values(value1,value4.toTsvector())
.onConflictDoNothing()
.execute()
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。