1.leftJoin(Class clazz, SFunction<T, ?> left, SFunction<X, ?> right) 方法时,我们可以通过指定实体类、连接条件左侧字段和连接条件右侧字段来进行左连接操作。
例子:
MPJLambdaQueryWrapper queryWrapper = new MPJLambdaQueryWrapper<>();
queryWrapper.select(User.class, info -> !info.getColumn().equals(“password”))
.eq(User::getStatus, 1)
.leftJoin(Department.class, User::getDepartmentId, Department::getId)
.eq(Department::getName, “技术部”);
List userList = userMapper.selectList(queryWrapper);
加粗部分,就是最常见的一种连接方式。
2.leftJoin(Class clazz, WrapperFunction<MPJAbstractLambdaWrapper<Entity, ?>> function)。我们可以关联多个条件时使用Lambda表达式
例子 .leftJoin(BfmPmcDispatchOrder.class,on-> on.eq(BfmPmcDispatchOrder::getId,BfmPmcOnlineProduct::getDispatchOrderId)
.eq(BfmPmcProductRecord::getDispatchOrderId,BfmPmcDispatchOrder::getId))
上面代码就是用了Lambda表单时,后面用多个.eq去进行连接
如果需要一些数据库的自有函数,或者特殊的查询写法,用apply()方法也可以自定义sql