当前位置: 首页 > 知识库问答 >
问题:

jooq'myPojo'到'记录':'store'函数在记录上不可用

南宫鸿晖
2023-03-14

我在这里学习手册:https://www.jooq.org/doc/latest/manual/sql-execution/fetching/pojos/#NA6504

我试图从pojo创建一个记录,我没有可用的record.store()方法,或dslContext.execute插入(新记录)

我的代码如下所示:

// this is created by me
data class Dummy(
    val name: String,
    val id: Long,
    val thisDoesNotExistInTheDatabaseAndThatsFineBecauseMappingToMyBusinessClassStillWorks: String?,
)

// table -> Business Object works ✅ 
dslContext.select()
.from(DummyTable.DUMMY_TABLE)
.fetch()
.into(Dummy::class.java)


// Business Object -> table does not work ❌ 
val newPojo = Dummy("string1", 1, null)
val newRecord: Record = dslContext.newRecord(DUMMY_TABLE, newPojo)
newRecord.store()    // this throws compilation error: Unresolved reference: store
dslContext.executeInsert(newRecord) // this throws compilation error: Type mismatch: inferred type is Record but TableRecord<*>! was expected

DUMMY_TABLE由joooq:开放类DummyTable: TableImpl生成

从文档中,我的理解是dslContext。newRecord(DUMMY_TABLE,newPojo)。store()应该可以正常工作。

我肯定我错过了一些明显的东西,但我不确定从哪里开始寻找。

共有1个答案

后焕
2023-03-14

问题是在变量声明中没有使用最合适的记录类型:

// This
val newRecord: Record = dslContext.newRecord(DUMMY_TABLE, newPojo)

// ... should be this:
val newRecord: DummyTableRecord = dslContext.newRecord(DUMMY_TABLE, newPojo)

// ... or even this:
val newRecord = dslContext.newRecord(DUMMY_TABLE, newPojo)

为了生成表记录,请在代码生成配置中激活相关标志:

  • https://www.jooq.org/doc/latest/manual/code-generation/codegen-records/

默认情况下应启用它。

 类似资料:
  • 有什么想法会出什么问题吗?

  • 我有3节课。MainActivity,OneFragment,TwoFragment,我在OneFragment上使用Sqlite填充了listview,并且我从TwoFragment中添加了记录(使用我的SqlHelper类使用的CreateData函数),但是新记录没有显示在listview中。 我该怎么解决这个? 如果你想看我可以上传的代码。

  • 给定:我在Kafka中有两个主题,假设主题A和主题B。Kafka流从主题A中读取一条记录,对其进行处理,并产生与所消耗记录相对应的多条记录(假设recordA和recordB)。现在的问题是我如何使用Kafka流来实现这一点。 在这里,读取的记录是消息;处理之后,它返回一个消息列表。如何将此列表划分为两个生产者流?任何帮助都将不胜感激。

  • 问题内容: 我正在寻找一种让python记录器模块登录数据库并在数据库关闭时回退到文件系统的方法。 所以基本上有两件事:如何让记录器记录到数据库,以及当数据库关闭时如何使记录器记录到文件中。 问题答案: 给自己编写一个将日志定向到相关数据库的 处理程序 。当它失败时,您可以将其从记录器的处理程序列表中删除。有许多方法可以处理故障模式。

  • 本文向大家介绍F# 将成员函数添加到记录,包括了F# 将成员函数添加到记录的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 构造之后,使用标准的Java日志记录API(导入java.util.logging.Logger): 我已经可以登录了。由于它没有FileHandler,因此不会向磁盘写入任何内容。 它写入(不是全部)日志消息以输出。如何禁用此功能?在此先感谢Agostino 问题答案: 如果您不知道Java util日志记录的默认配置,就会出现问题。体系结构事实:0)每个记录器(无论其名称是什么)都