只有绝望的赌鬼才肯把全部所有作孤注的一掷。一个商人如果把他的全部财产装在一只船上,人家就管他叫冒失鬼——席勒
我写了个函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
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
1 2 3 4 5 6 7 8 9 10 11 12 13
| 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> { }
|
演示如下
1 2 3 4
| @Test void testGetColumn() { System.out.println(getColumn(User::getUsername)); }
|
支持@TableField
注解,也支持自定义的转换规则
默认是驼峰转下划线
效果如下