Mybatis使用注解方式多表one-to-one对应查询

oauth_user的Entity类内增加

    @TableField(exist = false)
    private OauthOrganization oauthOrganization;

get...set略过

one=@One方式,此方式的优点是写法简单,不需要去一一对应B表Result,缺点是发送了n+1次sql查询(n为A表的查询结果的数量)

    @Select("SELECT * FROM `oauth_user`")
    @Results({
            @Result(property ="oauthOrganization",column="organizationid",
            one =@One(select ="com.qfclo.login.mapper.OauthOrganizationMapper.selectById"))}
    )
    List<OauthUser> selectallwithorg();

left join方式

    @Select("SELECT A.*,B.name as oname FROM `oauth_user` A LEFT JOIN `oauth_organization` B ON A.organizationid = B.id")
    @Results({
            @Result(property ="oauthOrganization.name",column="oname")}
            )
    List<OauthUser> selectallwithorg1();

此方式优点是可以指定B表仅查询某几个字段,此查询仅发送一次查询请求,效率高于第一种方式,缺点是此方式必须指定B表的Result字段的对应方式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MyBatis其他方式来实现多表查询的操作 利用Java中的集合框架(List,Map) 其中List存储多个查询...
    吴国友阅读 236评论 0 0
  • 魔法红木鞋这本书,讲述了小不点长大的过程。 从前有一个家庭,一共有十个孩子,其中有一个就叫小不点,即使这十个孩子的...
    宝峰汪阅读 2,167评论 0 0
  • Unit 5 textA 1,从本篇文章/音频/视频中我学到的最重要的概念 听不见或看不见会给我们的生活带来很多麻...
    17数446张莹阅读 184评论 0 0
  • 嗨,我亲爱的你 现在是2016年3月21日凌晨1点30分 我正躲在被窝里面 很困很困。 6个小时前还和你在我家路口...
    南狄家的小木桩阅读 320评论 0 0