mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 17:18:24 +08:00
!159 fix: 用户 QueryWrapper 返回 null 值时,不进行属性查询。
Merge pull request !159 from 王帅/main
This commit is contained in:
commit
0188bd2c1c
@ -39,13 +39,25 @@ public class FieldQueryManager {
|
|||||||
|
|
||||||
public static void queryFields(BaseMapper<?> mapper, Collection<?> entities, Map<String, FieldQuery> fieldQueryMap) {
|
public static void queryFields(BaseMapper<?> mapper, Collection<?> entities, Map<String, FieldQuery> fieldQueryMap) {
|
||||||
for (Object entity : entities) {
|
for (Object entity : entities) {
|
||||||
|
|
||||||
|
if (entity == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
fieldQueryMap.forEach((key, fieldQuery) -> {
|
fieldQueryMap.forEach((key, fieldQuery) -> {
|
||||||
//不是当前类的内容
|
// 不是当前类的内容
|
||||||
if (!key.startsWith(entity.getClass().getName() + "#")) {
|
if (!key.startsWith(entity.getClass().getName() + "#")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
QueryWrapper queryWrapper = fieldQuery.getQueryBuilder().build(entity);
|
QueryWrapper queryWrapper = fieldQuery.getQueryBuilder().build(entity);
|
||||||
|
|
||||||
|
// QueryWrapper 为 null 值时,不进行属性查询
|
||||||
|
if (queryWrapper == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Class<?> filedType = fieldQuery.getFieldWrapper().getFieldType();
|
Class<?> filedType = fieldQuery.getFieldWrapper().getFieldType();
|
||||||
Object value;
|
Object value;
|
||||||
|
|
||||||
@ -73,9 +85,7 @@ public class FieldQueryManager {
|
|||||||
Class<?> componentType = filedType.getComponentType();
|
Class<?> componentType = filedType.getComponentType();
|
||||||
List<?> objects = mapper.selectListByQueryAs(queryWrapper, componentType);
|
List<?> objects = mapper.selectListByQueryAs(queryWrapper, componentType);
|
||||||
value = getArrayValue(componentType, objects);
|
value = getArrayValue(componentType, objects);
|
||||||
}
|
} else {
|
||||||
// 实体类
|
|
||||||
else {
|
|
||||||
value = mapper.selectOneByQueryAs(queryWrapper, filedType);
|
value = mapper.selectOneByQueryAs(queryWrapper, filedType);
|
||||||
// 循环查询嵌套类
|
// 循环查询嵌套类
|
||||||
if (!fieldQuery.isPrevent()) {
|
if (!fieldQuery.isPrevent()) {
|
||||||
|
|||||||
@ -157,11 +157,12 @@ class UserMapperTest {
|
|||||||
.where(USER_ROLE.USER_ID.eq(userInfo.getUserId()))
|
.where(USER_ROLE.USER_ID.eq(userInfo.getUserId()))
|
||||||
),
|
),
|
||||||
c -> c.field(UserInfo::getOrderInfoList).queryWrapper(userInfo ->
|
c -> c.field(UserInfo::getOrderInfoList).queryWrapper(userInfo ->
|
||||||
QueryWrapper.create()
|
/*QueryWrapper.create()
|
||||||
.select()
|
.select()
|
||||||
.from(ORDER.as("o"))
|
.from(ORDER.as("o"))
|
||||||
.leftJoin(USER_ORDER).as("uo").on(USER_ORDER.ORDER_ID.eq(ORDER.ORDER_ID))
|
.leftJoin(USER_ORDER).as("uo").on(USER_ORDER.ORDER_ID.eq(ORDER.ORDER_ID))
|
||||||
.where(USER_ORDER.USER_ID.eq(userInfo.getUserId()))
|
.where(USER_ORDER.USER_ID.eq(userInfo.getUserId()))*/
|
||||||
|
null
|
||||||
),
|
),
|
||||||
c -> c.nestedField(OrderInfo::getGoodList).prevent().queryWrapper(orderInfo ->
|
c -> c.nestedField(OrderInfo::getGoodList).prevent().queryWrapper(orderInfo ->
|
||||||
QueryWrapper.create()
|
QueryWrapper.create()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user