Java 在生成的jOOQ记录中包含rowid

Java 在生成的jOOQ记录中包含rowid,java,sql,oracle,jooq,Java,Sql,Oracle,Jooq,我正在将jOOQ与Oracle DB一起使用,需要获取记录的rowid 是否可以在生成的jOOq记录中包含rowid?jOOq 3.12中提供了什么 JOOQ3.12引入了必要的基础设施,以实现您的目标。但是,现在(从jOOQ 3.12开始),没有办法向代码生成器或一般的updateableRecord表明存在这样一个人工ROWID列。挂起的功能请求包括: 添加设置以使用Table.rowid()而不是主键执行UpdateableRecord操作 添加代码生成选项以使所有记录都可更新 权变措

我正在将jOOQ与Oracle DB一起使用,需要获取记录的rowid

是否可以在生成的jOOq记录中包含rowid?

jOOq 3.12中提供了什么 JOOQ3.12引入了必要的基础设施,以实现您的目标。但是,现在(从jOOQ 3.12开始),没有办法向代码生成器或一般的
updateableRecord
表明存在这样一个人工
ROWID
列。挂起的功能请求包括:

  • 添加设置以使用Table.rowid()而不是主键执行UpdateableRecord操作
  • 添加代码生成选项以使所有记录都可更新
权变措施 根据您尝试执行的操作,您可以编写以1:1为基础表示表的视图,将
ROWID
列添加到每一行。使用和其他代码生成选项,您可以使这些视图在代码生成器看来再次类似于您的基表

您还可以扩展
jOOQ meta
中的类,在每个生成的记录上生成一个合成的
ROWID
列,如果需要,可以使用
overridePrimaryKeys
告诉代码生成器,ROWID是主键,而不是实际的主键。当然,你必须确保你永远不会写信给那个专栏


除此之外,您可以在所有手动构造的查询中手动获取。不过,它们将与您的
updateablerecord
实例分开。您可以使用
ResultQuery.fetchMap()
方法来生成行ID和记录之间的映射。

谢谢,我将尝试第二种解决方法,因为表太多(~1500)我使用记录创建视图的地方。@SimonMartinelli:我想到了另一种解决方法,您可以扩展
jOOQ meta
类,将
ROWID
信息添加到每个生成的记录中,见上文。啊,是的,我明白了。我得试试看。非常感谢。