Error evaluating expression 'ew.sqlSegment != null and ew.sqlSegment != '' and ew.nonEmptyOfWhere'. Cause: org.apache.ibatis.ognl.OgnlException: sqlSegment [com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: can not find lambda cache for this property [class] of entity [com.ruoyi.bistt.domain.CUser]]
时间: 2023-12-10 10:05:44 浏览: 1021
这个错误可能是因为 MyBatis Plus 框架无法找到 lambda 表达式缓存导致的。您可以尝试检查以下几点:
1. 检查实体类 CUser 是否正确配置了表名和字段名的映射注解,例如 @TableName 和 @TableField。
2. 检查 SQL 语句中的 where 条件是否正确使用了 LambdaWrapper 条件构造器,例如:
```java
LambdaQueryWrapper<CUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CUser::getId, id);
List<CUser> userList = cUserService.list(wrapper);
```
3. 检查 MyBatis Plus 的版本是否符合要求,建议使用最新版本。
如果以上方法无法解决问题,您可以尝试在 MyBatis Plus 的配置文件中开启 SQL 执行分析功能,查看生成的 SQL 语句是否正确。例如:
```yml
# application.yml
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开启日志输出
sql-parser-cache: true # 开启 SQL 解析缓存
sql-explain:
enabled: true # 开启 SQL 执行分析
```
希望这些方法可以帮助您解决问题。
阅读全文