在生成的 jOOQ 记录中包含 rowid
Include rowid in generated jOOQ Record
我将 jOOQ 与 Oracle DB 一起使用,需要获取记录的 rowid。
是否可以在生成的 jOOq 记录中包含 rowid?
jOOQ 3.12 中的可用功能
jOOQ 3.12 引入了 Table.rowid()
with #7885,因此,有必要的基础设施来做你想做的事。然而,现在(从 jOOQ 3.12 开始),没有办法向代码生成器或 UpdatableRecord
通常指示存在这样一个人工的 ROWID
列。待处理的功能请求包括:
解决方法
根据您要执行的操作,您可以在 1:1 基础上编写表示表的视图,将 ROWID
列添加到每一行。使用 syntheticPrimaryKeys
和其他代码生成选项,您可以使这些视图再次看起来像代码生成器的基表。
您还可以扩展 jOOQ-meta
中的 类 以在每个生成的记录上生成合成的 ROWID
列,如果需要,使用 overridePrimaryKeys
来告诉代码ROWID
是主键的生成器,而不是实际的主键,如果这是你想要的。当然,你必须确保你永远不会写那个专栏...
除此之外,您可以在所有手动构建的查询中手动获取 Table.rowid()
。不过,它们将与您的 UpdatableRecord
实例分开。您可以使用 ResultQuery.fetchMap()
方法来生成 rowid 和记录之间的映射。
我将 jOOQ 与 Oracle DB 一起使用,需要获取记录的 rowid。
是否可以在生成的 jOOq 记录中包含 rowid?
jOOQ 3.12 中的可用功能
jOOQ 3.12 引入了 Table.rowid()
with #7885,因此,有必要的基础设施来做你想做的事。然而,现在(从 jOOQ 3.12 开始),没有办法向代码生成器或 UpdatableRecord
通常指示存在这样一个人工的 ROWID
列。待处理的功能请求包括:
解决方法
根据您要执行的操作,您可以在 1:1 基础上编写表示表的视图,将 ROWID
列添加到每一行。使用 syntheticPrimaryKeys
和其他代码生成选项,您可以使这些视图再次看起来像代码生成器的基表。
您还可以扩展 jOOQ-meta
中的 类 以在每个生成的记录上生成合成的 ROWID
列,如果需要,使用 overridePrimaryKeys
来告诉代码ROWID
是主键的生成器,而不是实际的主键,如果这是你想要的。当然,你必须确保你永远不会写那个专栏...
除此之外,您可以在所有手动构建的查询中手动获取 Table.rowid()
。不过,它们将与您的 UpdatableRecord
实例分开。您可以使用 ResultQuery.fetchMap()
方法来生成 rowid 和记录之间的映射。