mybatisplus中有个对象TableInfo,主要存储表与实体之间的对应关系。获取这个描述的方法:
TableInfo tableInfo = TableInfoHelper.getTableInfo(entityClass);
TableInfo中获取主键列getKeyColumn(),获取其它属性列tableInfo.getFieldList(),然后遍历获getColumn()就拿到所有列了。
下面是我的例子:
private String getColumns(IService service){ TableInfo tableInfo = TableInfoHelper.getTableInfo(service.getEntityClass()); if (tableInfo != null){ List<String> columns = new ArrayList<>(); if (StringUtils.isNotBlank(tableInfo.getKeyColumn())){ columns.add(tableInfo.getKeyColumn()); } if (CollectionUtil.isNotEmpty(tableInfo.getFieldList())){ for (TableFieldInfo tableFieldInfo : tableInfo.getFieldList()) { columns.add(tableFieldInfo.getColumn()); } } return columns.stream().map(item->"`" + item + "`").collect(Collectors.joining(",")); } return null; }
方法不完善,欢迎指正