package com.goldenwater.slaj.common.utils;

import java.lang.reflect.Field;

/**
 * 实体工具类
 */
public class EntityUtils {

    /**
     * 将实体中所有空字符串字段转为 null，避免 PostgreSQL 类型转换错误
     * （如 CHAR(1) 列不允许空字符串、NUMERIC 列不识别空字符串）
     */
    public static <T> void emptyStringToNull(T entity) {
        if (entity == null) {
            return;
        }
        Field[] fields = entity.getClass().getDeclaredFields();
        for (Field field : fields) {
            if (field.getType() == String.class) {
                field.setAccessible(true);
                try {
                    Object value = field.get(entity);
                    if (value instanceof String && ((String) value).isEmpty()) {
                        field.set(entity, null);
                    }
                } catch (IllegalAccessException e) {
                    // ignore
                }
            }
        }
    }

}
