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

cn.org.atool.fluent.mybatis.base.model.FieldMapping Maven / Gradle / Ivy

package cn.org.atool.fluent.mybatis.base.model;

import cn.org.atool.fluent.mybatis.mapper.StrConstant;
import cn.org.atool.fluent.mybatis.metadata.DbType;

import static cn.org.atool.fluent.mybatis.If.isBlank;

/**
 * FieldMeta: 实体字段和数据库字段映射信息
 *
 * @author darui.wu  2020/6/23 9:16 上午
 */
@SuppressWarnings("rawtypes")
public class FieldMapping {
    /**
     * 属性名称
     */
    public final String name;
    /**
     * 字段名称
     */
    public final String column;

    public final Class javaType;

    public final Class typeHandler;

    public FieldMapping(String name, String column) {
        this(name, column, null, null);
    }

    public FieldMapping(String name, String column, Class javaType, Class typeHandler) {
        this.name = name;
        this.column = column;
        this.javaType = javaType;
        this.typeHandler = typeHandler;
    }

    /**
     * 返回字段名称
     *
     * @return ignore
     */
    @Override
    public String toString() {
        return this.column;
    }

    /**
     * column = #{prefix.field}
     *
     * @param prefix 前缀
     * @return ignore
     */
    public String el(DbType dbType, final String prefix) {
        String _prefix = isBlank(prefix) ? StrConstant.EMPTY : prefix + ".";
        if (typeHandler == null) {
            return dbType.wrap(this.column) + " = " + "#{" + _prefix + this.name + "}";
        } else {
            return String.format("%s = #{%s%s, javaType=%s, typeHandler=%s}",
                dbType.wrap(this.column), _prefix, this.name, this.javaType.getName(), this.typeHandler.getName());
        }
    }

    /**
     * alias.column
     *
     * @param alias 表别名
     * @return ignore
     */
    public String alias(String alias) {
        return alias(alias, column);
    }

    /**
     * tableAlias.column 表达式
     *
     * @param alias  table别名
     * @param column 字段
     * @return ignore
     */
    public static String alias(String alias, String column) {
        return isBlank(alias) ? column : alias + "." + column;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy