All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.org.atool.fluent.mybatis.utility.MappingKits Maven / Gradle / Ivy

There is a newer version: 1.9.9
Show newest version
package cn.org.atool.fluent.mybatis.utility;

import cn.org.atool.fluent.mybatis.base.IEntity;
import cn.org.atool.fluent.mybatis.base.model.FieldMapping;
import cn.org.atool.fluent.mybatis.functions.IGetter;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

/**
 * MappingKits: Entity字段映射工具类
 *
 * @author wudarui
 */
@SuppressWarnings({"unchecked", "rawtypes"})
public class MappingKits {
    public static  String[] toColumns(Class klass, IGetter getter, IGetter... getters) {
        List list = new ArrayList<>(getters.length + 1);
        list.add(toColumn(klass, getter));
        for (IGetter func : getters) {
            list.add(toColumn(klass, func));
        }
        return list.toArray(new String[0]);
    }

    public static String[] toColumns(FieldMapping column, FieldMapping... excludes) {
        List list = new ArrayList<>(excludes.length + 1);
        list.add(column.column);
        Stream.of(excludes).forEach(c -> list.add(c.column));
        return list.toArray(new String[0]);
    }

    /**
     * 根据getter函数返回数据库字段名称
     *
     * @param klass IEntity类
     * @param func  getter函数
     * @param    IEntity类
     * @return 数据库字段名称
     */
    public static  String toColumn(Class klass, IGetter func) {
        String field = LambdaUtil.resolveGetter(func);
        return RefKit.columnOfField(klass, field);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy