Jooq 从多对多关系中选择 pojos

Posted

技术标签:

【中文标题】Jooq 从多对多关系中选择 pojos【英文标题】:Jooq select pojos from many to many relationship 【发布时间】:2022-01-13 20:02:08 【问题描述】:

我刚开始学jooq,我有这3张桌子:

             _______________
            |   USER_ROLES  |
            | userid        |
            | roleid        |
            |_______________|
         ____/___        __\____
        |  USERS |      | ROLES |
        |___id___|      |___id__|

我需要为具有 id 的用户选择所有角色 pojos

public List<Roles> getRolesForUser(Long userId) 
   List<Roles> roles = dsl.select .... where(User.id.eq(id)).fetch()....
   return roles;

我不能正确地用谷歌搜索,所以很抱歉,我正在寻求帮助。

【问题讨论】:

【参考方案1】:

我假设您为数据库生成代码,那么查询将如下所示:

public List<Roles> getRolesForUser(Long userId) 
   List<Roles> roles = dsl
        .select(ROLES.fields())
        .from(ROLES)
        .join(USERS_ROLES).on(USER_ROLES.ROLEID.eq(ROLES.id)
        .where(USER_ROLES.USERID.eq(userId)
        .fetchInto(Roles.class);
   return roles;

【讨论】:

以上是关于Jooq 从多对多关系中选择 pojos的主要内容,如果未能解决你的问题,请参考以下文章

使用实体框架从多对多关系中选择数据

Hibernate - 从多对多关系访问字段

如何从多对多表中选择一对一关系

Django 从多对多关系中删除对象

从多对多关系中获取结果

从多对多关系中获取数据