【发布时间】:2021-08-29 13:02:25
【问题描述】:
我有三个表:event、speaker、event_speaker
事件和发言者具有由“event_speaker”表管理的 n:m 关系。我使用 jOOQ maven codegen 来生成像“EventRecord”和“SpeakerRecord”这样的文件。
在我的应用程序中,我想获取特定活动的所有发言人。所以我需要将“speaker”表与“event_speaker”表连接起来,才能通过事件ID来限制结果:
return dsl.select(SPEAKER.asterisk())
.from(SPEAKER)
.leftJoin(EVENT_SPEAKER).on(SPEAKER.ID.eq(EVENT_SPEAKER.SPEAKER_ID))
.where(EVENT_SPEAKER.EVENT_ID.eq(eventId))
.fetch();
现在我将得到一个Result<Record> 作为返回值。但我想得到一个Result<SpeakerRecord> 作为返回值。如果我删除加入,我会得到它(但当然结果集将包含所有发言者,这是我不想要的)。
当我需要加入时,如何获得SpeakerRecord 来代替更通用的Record 对象?
【问题讨论】: