【问题标题】:How do I use Jooq insert ... returning in MySQL without code generation?如何在不生成代码的情况下使用 Jooq insert ...在 MySQL 中返回?
【发布时间】:2020-07-01 20:26:16
【问题描述】:

我一直在尝试在 MySQL 中使用基于 DSL 的表定义的 insert...returning(我没有使用代码生成),并且我返回的记录始终为空。根据阅读,我需要在表定义中指定识别列,但我不知道如何!

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始终为null。

【问题讨论】:

    标签: java mysql jooq


    【解决方案1】:

    强烈建议您使用代码生成器向 DSL API 提供所有元信息。当然,您可以不使用代码生成器,而仍然使用代码生成器原本会使用的内部 API。您必须创建一个TableImpl 子类并覆盖/实现所有相关方法,而不是使用plain SQL API 创建表和字段引用。

    或者,您只需使用代码生成器。

    【讨论】:

      猜你喜欢
      • 2019-04-04
      • 2018-04-21
      • 2021-09-15
      • 2012-03-22
      • 2021-06-26
      • 2016-07-22
      • 2016-02-19
      • 2020-03-11
      • 2012-08-16
      相关资源
      最近更新 更多