mirror of
https://gitee.com/best_handsome/mybatis-plus-join
synced 2025-07-11 00:02:22 +08:00
移除 PARAM_TYPE
This commit is contained in:
parent
2760efad8f
commit
b31e271a37
@ -270,7 +270,7 @@ public class MPJQueryWrapper<T> extends AbstractWrapper<T, String, MPJQueryWrapp
|
|||||||
@Override
|
@Override
|
||||||
public MPJQueryWrapper<T> join(String keyWord, boolean condition, String joinSql) {
|
public MPJQueryWrapper<T> join(String keyWord, boolean condition, String joinSql) {
|
||||||
if (condition) {
|
if (condition) {
|
||||||
from.setStringValue(from.getStringValue() + keyWord + joinSql);
|
from.setStringValue(from.getStringValue() + StringPool.EMPTY + keyWord + StringPool.EMPTY + joinSql);
|
||||||
}
|
}
|
||||||
return typedThis;
|
return typedThis;
|
||||||
}
|
}
|
||||||
|
@ -33,19 +33,19 @@ public interface Constant {
|
|||||||
String LEFT_JOIN = StringPool.SPACE + LEFT + StringPool.SPACE + JOIN + StringPool.SPACE;
|
String LEFT_JOIN = StringPool.SPACE + LEFT + StringPool.SPACE + JOIN + StringPool.SPACE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* " RIGHT JOIN "
|
* "RIGHT JOIN"
|
||||||
*/
|
*/
|
||||||
String RIGHT_JOIN = StringPool.SPACE + RIGHT + StringPool.SPACE + JOIN + StringPool.SPACE;
|
String RIGHT_JOIN = RIGHT + StringPool.SPACE + JOIN;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* " INNER JOIN "
|
* "INNER JOIN"
|
||||||
*/
|
*/
|
||||||
String INNER_JOIN = StringPool.SPACE + INNER + StringPool.SPACE + JOIN + StringPool.SPACE;
|
String INNER_JOIN = INNER + StringPool.SPACE + JOIN;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* " FULL JOIN "
|
* "FULL JOIN"
|
||||||
*/
|
*/
|
||||||
String FULL_JOIN = StringPool.SPACE + FULL + StringPool.SPACE + JOIN + StringPool.SPACE;
|
String FULL_JOIN = FULL + StringPool.SPACE + JOIN;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* " t"
|
* " t"
|
||||||
|
@ -191,7 +191,9 @@ public class MPJLambdaWrapper<T> extends MPJAbstractLambdaWrapper<T, MPJLambdaWr
|
|||||||
StringBuilder value = new StringBuilder();
|
StringBuilder value = new StringBuilder();
|
||||||
for (MPJLambdaWrapper<?> wrapper : onWrappers) {
|
for (MPJLambdaWrapper<?> wrapper : onWrappers) {
|
||||||
String tableName = TableInfoHelper.getTableInfo(wrapper.getJoinClass()).getTableName();
|
String tableName = TableInfoHelper.getTableInfo(wrapper.getJoinClass()).getTableName();
|
||||||
value.append(wrapper.getKeyWord())
|
value.append(StringPool.SPACE)
|
||||||
|
.append(wrapper.getKeyWord())
|
||||||
|
.append(StringPool.SPACE)
|
||||||
.append(tableName)
|
.append(tableName)
|
||||||
.append(Constant.SPACE_TABLE_ALIAS)
|
.append(Constant.SPACE_TABLE_ALIAS)
|
||||||
.append(tableList.get(wrapper.getJoinClass(), wrapper.getIndex()).getIndex())
|
.append(tableList.get(wrapper.getJoinClass(), wrapper.getIndex()).getIndex())
|
||||||
|
@ -205,16 +205,66 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity> {
|
|||||||
return join(Constant.FULL_JOIN, clazz, function, ext);
|
return join(Constant.FULL_JOIN, clazz, function, ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 自定义连表关键词
|
||||||
* 调用此方法 keyword 前后需要带空格 比如 " LEFT JOIN " " RIGHT JOIN "
|
* 调用此方法 keyword 前后需要带空格 比如 " LEFT JOIN " " RIGHT JOIN "
|
||||||
* <p>
|
* <p>
|
||||||
* 查询基类 可以直接调用此方法实现以上所有功能
|
* 查询基类 可以直接调用此方法实现以上所有功能
|
||||||
*
|
*
|
||||||
* @param keyWord 连表关键字
|
* @param keyWord 连表关键字
|
||||||
* @param clazz 连表实体类
|
* @param clazz 连表实体类
|
||||||
* @param function 关联条件
|
* @param left 关联条件
|
||||||
* @param ext 扩展 用于关联表的 select 和 where
|
* @param right 扩展 用于关联表的 select 和 where
|
||||||
|
*/
|
||||||
|
default <T, X> Children join(String keyWord, Class<T> clazz, SFunction<T, ?> left, SFunction<X, ?> right) {
|
||||||
|
return join(keyWord, clazz, on -> on.eq(left, right));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义连表关键词
|
||||||
|
*
|
||||||
|
* @param left 条件
|
||||||
|
* @param right 条件
|
||||||
|
*/
|
||||||
|
default <T, X> Children join(String keyWord, SFunction<T, ?> left, SFunction<X, ?> right) {
|
||||||
|
return join(keyWord, LambdaUtils.getEntityClass(left), on -> on.eq(left, right));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义连表关键词
|
||||||
|
* <p>
|
||||||
|
* 例 leftJoin(UserDO.class, on -> on.eq(UserDO::getId,UserAddressDO::getUserId).le().gt()...)
|
||||||
|
*
|
||||||
|
* @param clazz 关联实体类
|
||||||
|
* @param function 条件
|
||||||
|
*/
|
||||||
|
default <T> Children join(String keyWord, Class<T> clazz, WrapperFunction<Entity> function) {
|
||||||
|
return join(keyWord, clazz, function, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义连表关键词
|
||||||
|
*
|
||||||
|
* @param clazz 关联的实体类
|
||||||
|
* @param left 条件
|
||||||
|
* @param right 条件
|
||||||
|
*/
|
||||||
|
default <T, X> Children join(String keyWord, Class<T> clazz, SFunction<T, ?> left, SFunction<X, ?> right, WrapperFunction<Entity> ext) {
|
||||||
|
return join(keyWord, clazz, on -> on.eq(left, right), ext);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义连表关键词
|
||||||
|
*
|
||||||
|
* @param left 条件
|
||||||
|
* @param right 条件
|
||||||
|
*/
|
||||||
|
default <T, X> Children join(String keyWord, SFunction<T, ?> left, SFunction<X, ?> right, WrapperFunction<Entity> ext) {
|
||||||
|
return join(keyWord, LambdaUtils.getEntityClass(left), on -> on.eq(left, right), ext);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 内部使用, 不建议直接调用
|
||||||
*/
|
*/
|
||||||
<T> Children join(String keyWord, Class<T> clazz, WrapperFunction<Entity> function, WrapperFunction<Entity> ext);
|
<T> Children join(String keyWord, Class<T> clazz, WrapperFunction<Entity> function, WrapperFunction<Entity> ext);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.github.yulichang.test.join;
|
package com.github.yulichang.test.join;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.github.yulichang.test.join.dto.AddressDTO;
|
import com.github.yulichang.test.join.dto.AddressDTO;
|
||||||
@ -264,4 +265,15 @@ class LambdaWrapperTest {
|
|||||||
assert list.get(0).get("ADDRESS") != null;
|
assert list.get(0).get("ADDRESS") != null;
|
||||||
list.forEach(System.out::println);
|
list.forEach(System.out::println);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联查询返回map
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
void testMP() {
|
||||||
|
List<UserDO> dos = userMapper.selectList(new LambdaQueryWrapper<UserDO>()
|
||||||
|
.gt(UserDO::getId, 3)
|
||||||
|
.lt(UserDO::getId, 8));
|
||||||
|
assert dos.size() == 4;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user