Mybatis内嵌的collection嵌套查询机制详解 您所在的位置:网站首页 使用多对一的标签是 Mybatis内嵌的collection嵌套查询机制详解

Mybatis内嵌的collection嵌套查询机制详解

2024-07-10 00:36| 来源: 网络整理| 查看: 265

一:使用环境

在初期的Spring boot+Mybatis项目的开发中,当需要用一张表中的多个字段进行子查询的时候,按照往常通过多次的嵌套,会变得很冗杂,此时我们需要使用Mybatis提供的嵌套查询,此次主要来讲讲collection简单用法。

二:使用方法:

这次的简易情景是我们需要通过查询所有的讨论话题,并建立子查询,看到他人的回复和自己的回复情况。

private int id; private String chat_name; private int chat_hot; private List son; private List myson;

实体类只需要在原本的字段上加上自己的回复的一个List和他人回复的一个List

自己回复的实体类和别人回复的实体类分别是:

private int id; private String chat_name; private String chat_myReply; private int id; private String chat_name; private String chat_reply; private String chat_person;

基本上可以看到此次建立子查询的公共字段为chat_name,即话题名称。

//prpeerty属性里是在java的实体类中的变量名称,即上文List所对应的变量名称 //column属性是子查询的字段 //ofType属性,因为此次是要查询返回的是一个集合,所以我们使用ofType //select属性主要是选择要执行的sql语句,找到对应的id即可 select id,chat_name,chat_hot from chat where chat_name like CONCAT('%',#{chat_name},'%') select id,chat_reply,chat_person from chat_son where chat_name = #{chat_name} select id,chat_myReply from chat_myson where chat_name = #{chat_name}

通过公共字段作为子查询的元素传入子查询语句中,每次只要触发主查询的时候,我们都会进行子查询的自启动。

三:结果与总结:

最后就是两个子查询的结果了。

[ { "id": 1, "chat_name": "物价问题", "chat_hot": 50, "son": [ { "id": 1, "chat_reply": "\"太贵了\"", "chat_person": "小明" }, { "id": 2, "chat_reply": "\"希望能降低\"", "chat_person": "小红" } ], "myson": [ { "id": 1, "chat_myReply": "\"肉降价了\"" } ] }, { "id": 2, "chat_name": "房价问题", "chat_hot": 30, "son": [ { "id": 3, "chat_reply": "\"买不起房子\"", "chat_person": "小军" }, { "id": 4, "chat_reply": "\"我不在乎\"", "chat_person": "小刚" } ], "myson": [ { "id": 2, "chat_myReply": "\"我有房子\"" } ] }, { "id": 3, "chat_name": "食堂问题", "chat_hot": 50, "son": [ { "id": 5, "chat_reply": "\"什么时候装修呀?\"", "chat_person": "花花" }, { "id": 6, "chat_reply": "\"不好吃,这个菜\"", "chat_person": "白案" } ], "myson": [ { "id": 3, "chat_myReply": "\"快换新椅子\"" }, { "id": 4, "chat_myReply": "\"价格有点贵\"" } ] }, { "id": 4, "chat_name": "奖学金问题", "chat_hot": 10, "son": [ { "id": 7, "chat_reply": "\"什么时候发放\"", "chat_person": "小刘" } ], "myson": [] } ]

最后总结Mybatis提供的嵌套查询机制在进行一对多的对象时可以使用,当需要的传递多个参数的时候,只需要在column属性传递一个集合即可实现多参数。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有