将联接结果映射到DTO

时间:2019-10-20 17:51:40

标签: jooq

我开始将JOOQ与DVD租赁商店数据库aka sakila一起使用。基本上,我想获取一个演员及其角色(我创建的表)。到目前为止,我想到了这个:

public ActorDTO findByName(String name) {
        ResultSet actors = dsl.select()
                .from(Tables.ACTOR)
                .join(Tables.ROLE_ACTOR).on(Tables.ROLE_ACTOR.ACTOR_ID.equal(Tables.ACTOR.ACTOR_ID))
                .join(Tables.ROLE).on(Tables.ROLE.ID.equal(Tables.ROLE_ACTOR.ROLE_ID))
                .fetchResultSet();

        return null;
    }

我希望能够将演员及其角色提取到一个对象中:DTO。我发现了这篇文章https://arnaudroger.github.io/blog/2017/03/02/jooq-one-to-many-without-dto.html,但是我发现使用sfm解决方案过于冗长,并且由于我更喜欢​​使用简单的POJO,因此使用Tuple毫无疑问。

理想情况下,我的DTO就像这样: enter image description here

关于获取具有关联联接的记录有什么建议?

1 个答案:

答案 0 :(得分:0)

有一个直接使用DTO的版本,请参见https://arnaudroger.github.io/blog/2017/02/27/jooq-one-to-many.html

由冗长吗?您是在谈论Tuple2还是mapper实例?还是.as()为列添加别名?

相关问题