Mybatis Plus 通过lambda获取属性名的关键源码

本文介绍了如何使用MybatisPlus的AbstractLambdaWrapper类实现lambda表达式查询时的列缓存优化,详细讲解了获取列信息、验证缓存并返回列值的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper
private String getColumn(SerializedLambda lambda, boolean onlyColumn) throws MybatisPlusException {
    String fieldName = PropertyNamer.methodToProperty(lambda.getImplMethodName());
    Class aClass = lambda.getInstantiatedMethodType();
    if (!this.initColumnMap) {
        this.columnMap = LambdaUtils.getColumnMap(aClass);
    }

    Assert.notNull(this.columnMap, "can not find lambda cache for this entity [%s]", new Object[]{aClass.getName()});
    ColumnCache columnCache = (ColumnCache)this.columnMap.get(LambdaUtils.formatKey(fieldName));
    Assert.notNull(columnCache, "can not find lambda cache for this property [%s] of entity [%s]", new Object[]{fieldName, aClass.getName()});
    return onlyColumn ? columnCache.getColumn() : columnCache.getColumnSelect();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值