注意:前提是实体类有注解 @TableName,@TableField
@TableName(value = "JX_STUDENT")
public class JxStudent implements Serializable {
private static final long serialVersionUID = 1L;
@TableField("t_name")
private String TName;
@TableField("t_class")
private String TClass;
...........
...........
}
代码:
public class EntityUtils {
public static String getColumnName(Class<?> entityClass, String propertyName) {
try {
Field field = entityClass.getDeclaredField(propertyName);
TableField tableField = field.getAnnotation(TableField.class);
if (tableField != null && !tableField.value().isEmpty()) {
return tableField.value();
}
// 如果没有指定@TableField的value,则默认使用属性名(或根据全局配置调整)
return propertyName; // 或者你可以根据命名策略来调整这里的返回值
} catch (NoSuchFieldException e) {
throw new IllegalArgumentException("Property " + propertyName + " not found in entity " + entityClass.getName());
}
}
}
使用:
String columnName = EntityUtils.getColumnName(JxStudent.class,TName);