Mybatisplus TableInfoHelper:获取entity对应的数据表字段列表

buguge - Keep it simple,stupid / 2024-11-13 / 原文

如题,调用 TableInfoHelper#getTableInfo(clazz) 这个工具方法可以得到entity类所对应的数据表的字段列表。

import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfo;


    TableInfo tableInfo = TableInfoHelper.getTableInfo(ScbgPayOrder.class);
    // 输出字段列表
    if (tableInfo != null) {
        List<TableFieldInfo> fieldList = tableInfo.getFieldList();
        for (TableFieldInfo field : fieldList) {
            System.out.println("Column Name: " + field.getColumn());
        }
    } else {
        System.out.println("Table not found");
    }

 

 

代码中的ScbgPayOrder类有如下field。

 

注意到 entity 中使用的 @TableField注解:

  1. openid有 @TableField(exist = false) 声明,这表示 openid 不是数据表字段。则输出的结果里不会包含openid。
  2. passengerId 通过@TableField#value 声明了对应的字段名是“passenger_id1”。则输出的字段名即是“passenger_id1”。

 

下面是debug出来的TableInfo。