Closed ZhangJunGuo1 closed 1 week ago
lambdaQueryWrapper1.columnToString(field) 将lambda转为字段.
columnToString我这个版本里面没有这个方法
感谢您的解答,这个问题已经解决了;
方案如下:
AbstractWrapper.columnsToString()的修饰符是protected,不能直接被我使用;
具体代码如下:
LambdaQueryWrapper<User> lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); lambdaQueryWrapper1.allEq((field, value) -> { LambdaMeta meta = LambdaUtils.extract(field); String fieldName = PropertyNamer.methodToProperty(meta.getImplMethodName()); System.out.println(fieldName+","+value); return fieldName.contains("a"); },Map.of(User::getId, 1, User::getName, "老王")).eq(User::getAge, null); userMapper.selectList(lambdaQueryWrapper1);
日志输出:
name,老王 id,1 [2024-07-07 10:27:45.415][http-nio-8080-exec-8][DEBUG]- org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:135) - ==> Preparing: SELECT id,name,age,email,gender,status,create_time,update_time,deleted,other_info FROM user1 WHERE deleted=0 AND (name = ? AND age = ?) [2024-07-07 10:27:45.416][http-nio-8080-exec-8][DEBUG]- org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:135) - ==> Parameters: 老王(String), null
**
**
当前环境信息 例如: Java17 + Mysql8.0
LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
lambdaQueryWrapper.allEq((field, value) -> {
System.out.println(field+","+value);
//field.contains("a");//编译报错Cannot resolve method 'contains' in 'SFunction'
return true;
},Map.of(User::getId, 1, User::getName, "老王")).eq(User::getAge, null);
userMapper.selectList(lambdaQueryWrapper1);
上述代码为参考官方示例
//日志记录 org.example.springboot3.mybatisplus.service.UserService$$Lambda$1596/0x00000008014a60f8@290ca9d6,老王 org.example.springboot3.mybatisplus.service.UserService$$Lambda$1595/0x00000008014a5ea8@736098b5,1 [2024-06-29 22:44:45.941][http-nio-8080-exec-6][DEBUG]- org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:135) - ==> Preparing: SELECT id,name,age,email,status FROM user1 [2024-06-29 22:44:45.941][http-nio-8080-exec-6][DEBUG]- org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:135) - ==> Parameters: [2024-06-29 22:44:45.943][http-nio-8080-exec-6][DEBUG]- org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:135) - <== Total: 15
提供问题复现工程(可选) 请尽量提供复现工程,减少大家排错的时间.