当前使用版本(必须填写清楚,否则不予处理)

3.3.0

该问题是怎么引起的?(最新版上已修复的会直接close掉)

CourtUnit courtUnit = courtUnitService.getOne(Wrappers.lambdaQuery(new CourtUnit()).eq(CourtUnit::getCourtCode, courtRoom.getCourtCode()));

重现步骤

报错信息

java.lang.NoSuchMethodException: cn.com.xxxxx.base.entity.CourtUnit.isValidityFlag() at java.lang.Class.getMethod(Class.java:1786) at com.baomidou.mybatisplus.core.toolkit.ReflectionKit.getMethodValue(ReflectionKit.java:102) at com.baomidou.mybatisplus.core.toolkit.ReflectionKit.getMethodValue(ReflectionKit.java:136) at com.baomidou.mybatisplus.core.conditions.Wrapper.fieldStrategyMatch(Wrapper.java:139) at com.baomidou.mybatisplus.core.conditions.Wrapper.lambda$nonEmptyOfEntity$0(Wrapper.java:127) at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90) at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1359) at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)

Comment From: qmdx

CourtUnit.isValidityFlag 该方法你看看是不是数据库命名 is_... 字段? 建议修改命名方式不要 is 开头容易和 java 的 isXxx 混淆框架层读取错误

Comment From: IceFoxs

CourtUnit courtUnit = new CourtUnit(); courtUnit.setCourtCode(courtCode); CourtUnit result = courtUnitService.getOne(Wrappers.lambdaQuery(courtUnit)); 这种方式正常; CourtUnit courtUnit = courtUnitService.getOne(Wrappers.lambdaQuery(new CourtUnit()).eq(CourtUnit::getCourtCode, courtRoom.getCourtCode())); 这种方式报错; @TableField("sfyx") private Boolean validityFlag; public Boolean getValidityFlag() { return validityFlag; }

public void setValidityFlag(Boolean validityFlag) {
    this.validityFlag = validityFlag;
}

CourtUnit.isValidityFlag 该方法你看看是不是数据库命名 is_... 字段? 建议修改命名方式不要 is 开头容易和 java 的 isXxx 混淆框架层读取错误

Comment From: IceFoxs

threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'ew.nonEmptyOfEntity and ew.nonEmptyOfNormal'. Cause: org.apache.ibatis.ognl.OgnlException: nonEmptyOfEntity [com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: NoSuchMethod in CourtUnit. Cause:]] with root cause java.lang.NoSuchMethodException: cn.com.chnsys.ecms.base.entity.CourtUnit.isValidityFlag() 无isValidityFlag()方法

Comment From: IceFoxs

CourtUnit.isValidityFlag 该方法你看看是不是数据库命名 is_... 字段? 建议修改命名方式不要 is 开头容易和 java 的 isXxx 混淆框架层读取错误 public static String guessGetterName(String name, Class<?> type) { if (ClassUtils.isBoolean(type)) { return name.startsWith("is") ? name : "is" + upperFirst(name); } return "get" + upperFirst(name); }

Comment From: IceFoxs

class ReflectionKit /* * 猜测方法名 * * @param field 字段 * @param str 属性字符串内容 / private static String guessGetterName(Field field, final String str) { return StringUtils.guessGetterName(str, field.getType()); }

3.2.0 无此StringUtils.guessGetterName方法 3.3.0有此方法

Comment From: IceFoxs

public static String getMethodCapitalize(Field field, final String str) { Class<?> fieldType = field.getType(); // fix #176 return StringUtils.concatCapitalize(boolean.class.equals(fieldType) ? "is" : "get", str); } issue 176

Comment From: miemieYaho

使用 3.3.1

Comment From: nieqiurong

1918