我正在将jOOQ与Oracle DB配合使用,并且需要获取记录的rowid。
是否可以在生成的jOOq记录中包括该rowid?
答案 0 :(得分:2)
jOOQ 3.12在Table.rowid()
和#7885中引入了#6168,因此,它是完成您想要做的事情的必要基础结构。但是,目前(从jOOQ 3.12开始),无法向代码生成器或UpdatableRecord
总体上指示存在这样的虚假ROWID
列。待处理的功能请求包括:
syntheticPrimaryKeys
添加代码生成选项以使所有记录都变为UpdatableRecords 根据要执行的操作,您可以编写以1:1为基础表示表的视图,并将ROWID
列添加到每一行。使用Table.rowid()
和其他代码生成选项,对于代码生成器,您可以使这些视图再次看起来像基表。
您还可以扩展jOOQ-meta
中的类,以在每个生成的记录上生成一个合成的ROWID
列,并且如果需要,可以使用overridePrimaryKeys
告诉代码生成器{{1 }}是主键,而不是实际的主键(如果需要的话)。当然,您必须确保永远不会写该列...
除此之外,您还可以在所有手动构建的查询中手动获取per the documentation。不过,它们将与您的ROWID
实例分开。您可以使用UpdatableRecord
方法在行标识符和记录之间产生映射。