当前使用版本(必填,否则不予处理)
3.5.5
该问题是如何引起的?(确定最新版也有问题再提!!!)
自定义基类 BaseEntity 自定义IBaseService 在IBaseService 自定义 unique方法
重现步骤(如果有就写完整)
实现类如下
`public class BaseServiceImpl
/**
* 判断是否唯一
*
* @param id ID
* @param attributeName 属性名称
* @param attributeValue 属性值
* @return 是否唯一
*/
@Override
public boolean unique(Serializable id, SFunction<T, ?> attributeName, Object attributeValue) {
LambdaQueryWrapper<T> wrapper = new LambdaQueryWrapper<>();
if (id != null) {
wrapper.ne(T::getId, id);
}
wrapper.eq(attributeName, attributeValue);
return count(wrapper) <= 0;
}
}`
报错信息
debug调试发现 在类:com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper#columnMap 缓存中只有基类字段信息 没有当前SystemRole类字段信息 com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: can not find lambda cache for this property [code] of entity [cn.xx.xx.SystemRole] at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72) at com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper.getColumnCache(AbstractLambdaWrapper.java:149) at com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper.getColumnCache(AbstractLambdaWrapper.java:132)
Comment From: miemieYaho
new LambdaQueryWrapper(xx.class)