下面是mybatis-plus里面的一段代码,里面的Article::getId,这个方法引用怎么就返回一个id字段呢,而不是id的值,这让我有点小疑惑,请求大佬指点一二!,感谢!
- LambdaQueryWrapper<Article> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(Article::getId,article.getId());
Article::getId其实目的就是返回id这个字符串,方法你可以看com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda#resolve,他是通过序列化和反序列化来处理这个lambda表达式的,得到SerializedLambda对象以后,implMethodName字段就是getId这个字符串,然后截取出id
15 回答8.4k 阅读
8 回答6.2k 阅读
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.6k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
mybatis-plus的工作机制首先通过代码拼接SQL
wrapper.eq(Article::getId,article.getId()),这一句的意思就是eq是等于 就是 id=(article.getId的值),前面是条件的字段,后面是条件的值,最终拼接sql就是