1234567891011121314151617181920212223242526 |
- package org.example.join.model;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.toolkit.LambdaUtils;
- import com.baomidou.mybatisplus.core.toolkit.StringPool;
- import com.baomidou.mybatisplus.core.toolkit.support.LambdaMeta;
- import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
- import org.apache.ibatis.reflection.property.PropertyNamer;
- public interface IQueryColumn extends IFormat {
- static IQueryColumn create(Object obj) {
- return obj::toString;
- }
- static IQueryColumn create(Object obj, String alias) {
- return () -> obj.toString() + StringPool.SPACE + alias;
- }
- static <T> IQueryColumn create(Object obj, SFunction<T, ?> function) {
- LambdaMeta meta = LambdaUtils.extract(function);
- String alias = StrUtil.toUnderlineCase(PropertyNamer.methodToProperty(meta.getImplMethodName()));
- return () -> obj.toString() + StringPool.SPACE + alias;
- }
- }
|