MyBatisPlus多表查询的问题

1.问题描述

有一个Person表和一个Pay表,person表中的id与pay表中ID一致,可以定位到一个人的pay情况,目前是想根据部门id(person表中的一个字段),找到本部门下的pay

2.代码实现 

根据部门id查询出person(一个list),再在pay表中查询id所属这个list的id即可

LambdaQueryWrapper<PaySlip> qw = new LambdaQueryWrapper<>();
 List<Person> personByDepartmentId =personService.list(new QueryWrapper<Person>().eq("department_id", departmentId));
            List<String> paySlipList=new ArrayList<>();
            for (Person person : personByDepartmentId) {
                paySlipList.add(person.getId());
            }
            qw.in(PaySlip::getId,paySlipList);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我明白了。有关于mybatisplus多表关联查询的问题,我可以给你一些简单的解释和示例。 在mybatisplus中,可以通过注解或者XML来进行多表关联查询。其中,注解方式可以使用@JoinQuery注解。示例代码如下: ```java @Data public class User { private Long id; private String name; private Integer age; private String email; } @Data public class Order { private Long id; private Long userId; private String productName; private BigDecimal price; @TableField(exist = false) private User user; } @TableName("user") @Data public class UserVo extends User { @TableField(exist = false) private List<Order> orders; } public interface UserMapper extends BaseMapper<User> { @Select("SELECT * FROM user WHERE id=#{id}") @JoinQuery(value="test_order",entity=Order.class,on="user.id=order.user_id",type=JoinType.LEFT_JOIN,resultMap="userVo") UserVo getByIdWithOrder(@Param("id") Long id); } ``` 在这个例子中,我们定义了两个实体类:User和Order。然后,我们使用@JoinQuery注解对UserVo实体类进行关联查询。关联查询的条件是user.id=order.user_id,使用了左连接(JoinType.LEFT_JOIN)。返回的结果使用了UserVo这个实体类封装。 这个例子中,我们查询了UserVo和Order两个表,返回了id为指定id的用户以及其所拥有的所有订单。 希望这个示例能够帮助你理解mybatisplus多表关联查询的实现方式。如果你有更多的问题,可以继续问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值