只有绝望的赌鬼才肯把全部所有作孤注的一掷。一个商人如果把他的全部财产装在一只船上,人家就管他叫冒失鬼——席勒
我写了个函数
| 
 
 
 
 
 
 
 public static <R, T> String getColumn(SFunction<T, R> function) {
 SerializedLambda lambda = LambdaUtils.resolve(function);
 TableInfo tableInfo = TableInfoHelper.getTableInfo(lambda.getImplClass());
 return tableInfo.getFieldList()
 .parallelStream()
 .filter(filed -> PropertyNamer.methodToProperty(lambda.getImplMethodName()).equals(filed.getProperty()))
 .findFirst()
 .map(TableFieldInfo::getColumn)
 .orElseThrow(() -> new MybatisPlusException("未找到该字段"));
 }
 
 | 
依赖mybatis-plus
能通过Function获取属性对应字段
注意需要有BaseMapper
| package com.ruben.simpleideaspringboot.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruben.simpleideaspringboot.pojo.po.User;
 import org.apache.ibatis.annotations.Mapper;
 
 
 
 
 
 @Mapper
 public interface UserMapper extends BaseMapper<User> {
 }
 
 | 
演示如下
| @Testvoid testGetColumn() {
 System.out.println(getColumn(User::getUsername));
 }
 
 | 

支持@TableField注解,也支持自定义的转换规则
默认是驼峰转下划线
效果如下
