org.jooq.lambda.tuple - 创建元组
org.jooq.lambda.tuple - Create Tuples
在我的项目中,我需要使用 org.jooq.lambda.Tuple 来映射 simpleflatmapper JdbcMapperFactory 的字段:
public static final JdbcMapper<Tuple17<
Entity1,
Entity2,
Entity3,
Entity4,
Entity5,
Entity6,
Entity7,
Entity8,
Entity9,
Entity10,
Entity11,
Entity12,
Entity13,
Entity14,
Entity15,
Entity16,
Entity17
>> MAPPER =
JdbcMapperFactory
.newInstance()
.unorderedJoin()
.newMapper(
new TypeReference<>() {
});
但是我在库 org.jooq.jool:0.9.12
的包 org.jooq.lambda.tuple 中只有 16 个元组
我的想法是避免为我的下一个 Tuple17,18,19... 等编写样板代码
另外,我找了好久想提一下Jooq类似的,现成的结构,没找到。另外,我找不到任何此类元组的生成器。
有人可以帮忙吗?
如果语言不能对“通用类型变量元数”进行抽象,库必须通过创建类似 jOOλ 的 Tuple[N]
类型 (max(N) = 16) 或 jOOQ 的 Record[N]
类型来解决这个问题(最大值(N)= 22)。类型安全的上限是任意选择的。一个或另一个数字没有充分的理由。所以,你最终将不可避免地 运行 进入你 运行 进入的限制。
通常有嵌套元组的工具来解决这个问题。 IE。以下两种类型之间没有显着差异:
Tuple3<A, B, C>
Tuple2<A, Tuple2<B, C>>
如果您必须使用您已经开始使用的堆栈(jOOλ 和 SimpleFlatMapper),那么我怀疑这是解决您遇到的限制的一种方法。当然,还有其他方法,例如
- 在某些时候,您可以只使用
Object[]
并放弃类型安全。
- 如果您使用的是 jOOQ,则可以使用 jOOQ 中已有的 nested records / SQL,因此实际上您永远不会达到 16 个属性的限制
后一个建议暗示可能有 jOOQ-only 解决您的潜在问题的方法,这消除了对其他两个库的需要。我很高兴在 follow-up 问题中研究该选项。
在我的项目中,我需要使用 org.jooq.lambda.Tuple 来映射 simpleflatmapper JdbcMapperFactory 的字段:
public static final JdbcMapper<Tuple17<
Entity1,
Entity2,
Entity3,
Entity4,
Entity5,
Entity6,
Entity7,
Entity8,
Entity9,
Entity10,
Entity11,
Entity12,
Entity13,
Entity14,
Entity15,
Entity16,
Entity17
>> MAPPER =
JdbcMapperFactory
.newInstance()
.unorderedJoin()
.newMapper(
new TypeReference<>() {
});
但是我在库 org.jooq.jool:0.9.12
的包 org.jooq.lambda.tuple 中只有 16 个元组我的想法是避免为我的下一个 Tuple17,18,19... 等编写样板代码
另外,我找了好久想提一下Jooq类似的,现成的结构,没找到。另外,我找不到任何此类元组的生成器。
有人可以帮忙吗?
如果语言不能对“通用类型变量元数”进行抽象,库必须通过创建类似 jOOλ 的 Tuple[N]
类型 (max(N) = 16) 或 jOOQ 的 Record[N]
类型来解决这个问题(最大值(N)= 22)。类型安全的上限是任意选择的。一个或另一个数字没有充分的理由。所以,你最终将不可避免地 运行 进入你 运行 进入的限制。
通常有嵌套元组的工具来解决这个问题。 IE。以下两种类型之间没有显着差异:
Tuple3<A, B, C>
Tuple2<A, Tuple2<B, C>>
如果您必须使用您已经开始使用的堆栈(jOOλ 和 SimpleFlatMapper),那么我怀疑这是解决您遇到的限制的一种方法。当然,还有其他方法,例如
- 在某些时候,您可以只使用
Object[]
并放弃类型安全。 - 如果您使用的是 jOOQ,则可以使用 jOOQ 中已有的 nested records / SQL,因此实际上您永远不会达到 16 个属性的限制
后一个建议暗示可能有 jOOQ-only 解决您的潜在问题的方法,这消除了对其他两个库的需要。我很高兴在 follow-up 问题中研究该选项。