java - 如何在不生成代码的情况下使用 Jooq insert ...在 MySQL 中返回?
问题描述
我一直在尝试在 MySQL 中使用 insert...returning 和基于 DSL 的表定义(我没有使用代码生成),并且我返回的记录始终为空。根据阅读,我需要在表定义中指定识别列,但我不知道如何!
Record recordKey = create.insertInto(table("modulerecords"),
field("id"),
field("module_id"),
field("created_date"),
field("created_by"),
field("state"),
field("tag_id"),
field("start_time",Timestamp.class),
field("kill_time", Timestamp.class),
field("feed_guid")
)
.values(null, moduleId, currentTimestamp(),
userId, state, tagId,
new Timestamp(startTime),
new Timestamp(killTime), feedGuid)
.returning(field("id"))
.fetchOne();
字段“id”是数据库中的auto_increment主键,但recordKey始终为空。
解决方案
强烈建议您使用代码生成器向 DSL API 提供所有元信息。当然,您可以不使用代码生成器,而仍然使用代码生成器原本会使用的内部 API。您必须创建一个子类并覆盖/实现所有相关方法,而不是使用普通的 SQL API创建表和字段引用。TableImpl
或者,您只需使用代码生成器。
推荐阅读
- python-3.x - 如何在 Python 中找到最接近数字的值?
- pdf - 使用 Google Cloud Vision 的 OCR PDF 文件?
- ios - 快速显示和隐藏导航栏
- javascript - $ 未定义 (Node+Express+Pug+JQuery)
- c# - C# - 获取字符之间的所有单词
- c++ - 使用“地板”时的数值精度
- maven - Maven:获取依赖项的 csm/connection
- javascript - 当使用 jquery 甚至纯 javascript 检查 3 个或更多复选框时,如何过滤 div 列表?
- php - 如何在一种形式的codeigniter中使用foreach获取数据
- angular - 角度中的表单组验证