gpt4 book ai didi

java - 我必须指定 jooq 结果类型吗?

转载 作者:行者123 更新时间:2023-12-01 04:18:05 25 4
gpt4 key购买 nike

有没有办法不指定下面示例中的所有类型参数?我尝试过仅使用“记录”,但无济于事。

   Map<Integer,Result<Record6<Integer, String, Integer, String, String, Integer>>> records = db()
.select(TRANSITIONS.TRANSITION_ID, TRANSITIONS.TYPE, POSES.POSE_ID, POSES.NAME, IMAGES.URL, IMAGES.SCORE.max())
.from(TRANSITIONS
.join(POSES).on(POSES.POSE_ID.equal(TRANSITIONS.TO_POSE_ID))
.join(IMAGES).on(IMAGES.POSE_ID.equal(POSES.POSE_ID)))
.where(TRANSITIONS.FROM_POSE_ID.equal(fromPoseId))
.groupBy(TRANSITIONS.TRANSITION_ID, TRANSITIONS.TYPE, POSES.POSE_ID, POSES.NAME, IMAGES.URL)
.fetchGroups(TRANSITIONS.TRANSITION_ID);

最佳答案

Java 泛型的工作方式,你无法获得

Map<Integer, Result<?>> // or
Map<Integer, Result<Record>>

来自 fetchGroups() 方法,给定其签名:

<K> Map<K, Result<R>> fetchGroups(Field<K> key)

不过,您可以通过调整 <R> 来解决此问题。您的类型ResultQuery ,要么通过不安全的转换,要么通过使整个选择不那么安全:

db().select(new Field[] { 
TRANSITIONS.TRANSITION_ID,
TRANSITIONS.TYPE,
POSES.POSE_ID,
POSES.NAME,
IMAGES.URL,
IMAGES.SCORE.max()
}).from(...)

或者使用这个技巧:

db().select(...) // "Typesafe" select clause
.select() // Additional select clause removing typesafety

关于java - 我必须指定 jooq 结果类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19248961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com