繁体   English   中英

如何在3.9.2中使用Jooq映射器

[英]How to use Jooq mapper in 3.9.2

我想用系统提供mapper,怎么用? 或者你如何实现一个?

例如:

public List<com.chunfytseng.microedu.jooq.tables.pojos.SysResources> findResourceByUserId(Long value) {
        using(configuration()).
           select(SysRoleResources.SYS_ROLE_RESOURCES.ROLE_ID, 
                   SysRoleResources.SYS_ROLE_RESOURCES.RESOURCES_ID,
                   SysRoleResources.SYS_ROLE_RESOURCES.PERMS)
          .from(SysRoleResources.SYS_ROLE_RESOURCES)
          .leftSemiJoin(SysUserRole.SYS_USER_ROLE)
          .on(SysRoleResources.SYS_ROLE_RESOURCES.ROLE_ID.eq(SysUserRole.SYS_USER_ROLE.ROLE_ID).
                  and(SysUserRole.SYS_USER_ROLE.USER_ID.equal(value)))
          .fetch().map(mapper());
    }

RecordMapper可以非常容易地实现,如下所示:

Java 8风格

fetch().map(record -> {
    SysResources result = new SysResources();
    result.setRoleId(record.get(SYS_ROLE_RESOURCS.ROLE_ID));
    result.setResourcesId(record.get(SYS_ROLE_RESOURCS.RESOURCES_ID));
    result.setPerms(record.get(SYS_ROLE_RESOURCS.PERMS));
    return result;
});

Java 7及更旧的风格:

fetch().map(new RecordMapper<Record, SysResources>() {
    @Override
    public SysResources map(Record record) {
        SysResources result = new SysResources();
        result.setRoleId(record.get(SYS_ROLE_RESOURCS.ROLE_ID));
        result.setResourcesId(record.get(SYS_ROLE_RESOURCS.RESOURCES_ID));
        result.setPerms(record.get(SYS_ROLE_RESOURCS.PERMS));
        return result;
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM