mybatis result 多表关联查询

<sql id="pZoneCoordinateAllField">coordinateAreaId,coordinateNumber,coordinateId,zoneId,coordinateAreaName,coordinateLongitude,coordinateAltitude,longitudeDegree,longitudeMinute,longitudeSecond,altitudeDegree,altitudeMinute,altitudeSecond</sql>  
	<resultMap type="ProtectionZone" id="pzMap">  
    <!-- 传递两个字段 -->  
    <collection property="coordinates" javaType="ArrayList"   
     column="{zoneId = zoneId}" ofType="ProtectionZoneCoordinate" select="findProtectionZoneCoordinate"/>  
    </resultMap>  
	<select id="findProtectionZoneCoordinate" resultType="ProtectionZoneCoordinate">  
    select <include refid="pZoneCoordinateAllField" /> from protectionZoneCoordinate  
     where zoneId=#{zoneId} ;   
    </select>
	
    <select id="selectId" resultMap="pzMap">
		select * from (
		select a.zonePeriodStartMonth,
		a.zonePeriodEndMonth,
		a.zoneStatus,
		a.zoneOrgStaffCount,
		a.zoneOrgTechStaffCount,
		(select fullName from sys_user where userId=a.zoneCreator) as createName,
		a.zoneOrgLawEnforcerCount,
		a.zoneArea,
		a.zoneOrgContactEmail,
		a.zoneOrgFundOrgin,
		a.zoneOrgWorkerCount,
		a.zoneCoreArea,
		a.zoneExperimentalArea,
		a.zoneOrgFixedAnnualFund,
		a.zoneOrgTotalAsset,
		a.zoneId,
		a.zoneSeries,
		a.zoneLevel,
		a.zoneCreator,
		a.zoneCreateTime,
		a.zoneEditTime,
		a.zoneOrgLevel,
		a.zoneOrgType,
		a.zoneNumber,
		a.zoneName,
		a.zoneAreaCode,
		a.zoneAdditionalSpecies,
		a.zoneSurveillanceId,
		a.zoneOrgName,
		a.zoneOrgContactMobile,
		a.zoneOrgLegalPerson,
		a.zoneOrgContactName,
		a.zoneOrgRelation,
		a.zoneOrgNameLevel,
		a.zoneOrgAreaOwnership,
		a.zoneOrgContactAddress,
		a.zoneOrgContactZip,
		a.zoneOrgContactPhone,
		a.isEnable
		from protectionZone a
		) as j
		where zoneId=#{zoneId}
	</select>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis Plus多表关联查询分页的实现可以通过使用Mybatis Plus提供的Wrapper类来实现。以下是一个示例: ```java Page<User> page = new Page<>(1, 10); QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("role_id", roleId); wrapper.orderByDesc("create_time"); IPage<User> userPage = userMapper.selectPage(page, wrapper); List<User> userList = userPage.getRecords(); ``` 在以上示例,我们使用了QueryWrapper来构建查询条件,其eq表示等于,orderByDesc表示按照create_time字段进行降序排序。然后我们调用了Mybatis Plus提供的selectPage方法来进行分页查询,其第一个参数是Page对象,表示查询的分页信息,第二个参数是Wrapper对象,表示查询的条件。最后我们可以通过getRecords方法获取查询结果。 在多表关联查询时,我们可以使用Mybatis Plus提供的LambdaQueryWrapper类来进行条件构造,例如: ```java LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery(); wrapper.eq(User::getRoleId, roleId) .orderByDesc(User::getCreateTime); IPage<User> userPage = userMapper.selectPage(page, wrapper); ``` 以上示例使用了LambdaQueryWrapper来构造查询条件,其eq表示等于,orderByDesc表示按照create_time字段进行降序排序。然后我们调用了Mybatis Plus提供的selectPage方法来进行分页查询,其第一个参数是Page对象,表示查询的分页信息,第二个参数是Wrapper对象,表示查询的条件。最后我们可以通过getRecords方法获取查询结果。 需要注意的是,在多表关联查询时,我们需要使用Mybatis Plus提供的@TableName和@TableField注解来指定表名和字段名,以便Mybatis Plus能够正确地生成SQL语句。另外,在查询结果,我们可以通过使用Mybatis Plus提供的@Result注解来指定实体类的属性和查询结果的字段的映射关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值