mybatis/mybatisplus 一对多查询

news/2025/3/14 17:06:28/

1.Controller 定义 需要传入的参数

OntologyEntity param=new OntologyEntity();
param.setName(name);
Page<OntologyEntity> resultPage=new Page<>(pageNumber,pageSize);
// 查询分页数据:mybatisplus
// param:为查询需要传入的参数可以是任意java数据类型
// resultPage:分页参数
IPage<OntoBuildVertexLabelDto> iPage = entityService.pageByEntity(resultPage,param);

2.定义mapper接口

public interface OntologyEntityMapper extends BaseMapper<OntologyEntity> {/*** 分页查询* @param resultPage 分页参数* @param param 查询参数* @return*/IPage<OntoBuildVertexLabelDto> pageByEntity(Page<OntologyEntity> resultPage,@Param("param")  OntologyEntity param);
}

2.定义实体类OntologyEntity,OntoBuildVertexLabelDto,OntologyEntityAttribute

public class OntoBuildVertexLabelDto {private String id;private String name;private OntologyEntityAttribute properties;
}
public class OntologyEntityAttribute{private String id;private String entityId;private String attributeId;private String attributeName;
}
public class OntologyEntity{private String id;private String name;
}

3.需要分页情况时2的方式就不能满足了,需要改为父子查询方式

// 定义返回的结果集结构
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.yunpi.doo.msvs.mapper.OntologyEntityMapper">/**主查询返回类型**/<resultMap id="BaseResultMapPage" type="com.yunpi.doo.msvs.model.dto.OntoBuildVertexLabelDto"><result column="id" property="id" /><result column="name"               property="name" />/**子查询定义:select:子查询查询语句idcolumn:主表与子表关联字段信息:id主表id对应子表entityIdproperty:主查询返回结果属性名称ofType:子查询返回类型**/<collection select="selectProperties" column="{entityId=id}"  property="properties" ofType="com.yunpi.doo.msvs.bean.OntologyEntityAttribute"></collection></resultMap>/**子查询id:子查询定义中的select值相等resultType:子查询定义中的ofType值相等**/<select id="selectProperties" resultType="com.yunpi.doo.msvs.bean.OntologyEntityAttribute">selectdoea.id AS id,doea.entity_id AS entityId,doea.attribute_id AS attributeId,doea.attribute_name AS attributeName fromdoo_ontology_entity_attribute doeaWHERE1=1 and  doea.entity_id=#{entityId}</select>/**主查询**/<select id="pageByEntity"  parameterType="com.yunpi.doo.msvs.bean.OntologyEntity" resultMap="BaseResultMapPage">SELECTdoe.id,doe.target_type AS targetType,doe.ontology_base_info_id AS ontologyBaseInfoId,doe.name AS nameFROMdoo_ontology_target_bo doeWHERE 1=1<if test="param.name != null and param.name != ''">AND doe.name  = #{param.name }</if>order by doe.created_time desc</select>
</mapper>

http://www.ppmy.cn/news/792264.html

相关文章

Mybatis -- 使用

目录 官网 依赖 简单使用 Mapper代理方式 字段属性名映射 请求参数 1.普通类型参数 2.多个参数 3.对象参数 4.Map参数 动态参数 IF 判断 Choose判断 特殊字符 插入insert 更新update 删除delete 单个删除 多个删除 参数封装 单个参数 多个参数 一对一查询…

MyBatis的一对多查询

<!-- 一对多关联查询 --> <resultMap id"唯一的标识" type"映射的pojo对象"><id column"表的主键字段或查询语句中的别名字段" jdbcType"字段类型" property"映射pojo对象的主键属性" /><result colu…

MyBatis增强器——Mybatis-Plus

MyBatis增强器——Mybatis-Plus 一、Mybatis-Plus简介1.简介2.特性3.支持数据库4.框架结构 二、入门案例1.开发环境2.创建数据库及表创建表添加数据 3.创建SpringBoot工程4.编写代码 三、基本crud四、常用注解1.TableName通过TableName解决问题通过全局配置解决问题 2.TableId通…

万豪、希尔顿、凯悦、万达、首旅如家旗下酒店年末扎堆开业 | 中国酒店业周刊...

本期焦点&#xff1a;元旦国内酒店预订量是去年1.8倍&#xff0c;三亚春节客房每间限价5900元。深圳湾安达仕、沈阳万豪、重庆两江新区高科希尔顿、陵水碧桂园希尔顿逸林温泉、北京海淀万枫、苏州吴中福朋喜来登、萍乡武功山万达锦华、桂林融创万达嘉华、成都中心、上海静安逸扉…

万豪将在武汉远洋里建奢华五星酒店;Cook’s Club全球首家全套房酒店落户桂林 | 中国酒店周刊...

本期焦点&#xff1a;复星旅文旗下Cook’s Club全球首家全套房酒店下半年于桂林开业。美团或投资东呈国际集团入局酒店行业。佛山南海和华希尔顿逸林酒店开业。万豪将在武汉远洋里建奢华五星酒店。安纳塔拉度假会国内首家品牌推广店于上海开业。 酒店业动态 复星旅文旗下Cook…

MybatisPlus实现高效的多对多查询

1、前置 事先声明一下代码中蕴含了大量的Stream和Lambda表达式操作&#xff0c;还不清楚的小伙伴可以去参考一下Java8新特性Stream流 &#xff0c;而却我是用的是MybatisPlus这方面不清楚的也可以参考一下MybatisPlus基础用法&#xff1b;中间的对象转换除了使用Spring的BeanP…

市面上的益生菌调研

华大基因的菌粉调研 产品型号菌种名称益生元、添加剂优美达益休 植物乳杆菌TC-26(五羟色胺) 乳双歧杆菌A6 菊粉&#xff0c; 抗性糊精&#xff0c; 酪蛋白酶解物&#xff0c; γ-氨基丁酸&#xff0c; 茶叶茶氨酸&#xff0c; 百香果果汁粉&#xff0c; 麦芽糊精 优美达益健 …

Java-LockSupport(四)

1.基本概念 Java的LockSupport类提供了一种基于线程的阻塞和唤醒机制&#xff0c;它可以用于实现线程之间的同步和协作。主要用途包括以下几个方面&#xff1a; 阻塞和唤醒线程&#xff1a;LockSupport类提供了park()和unpark()方法&#xff0c;用于线程的阻塞和唤醒操作。通过…