KKSU
2025-02-05 9634244f5ad3c8493fb28e3a32d7526977cdd160
src/main/java/cc/mrbird/febs/common/utils/ValidateEntityUtils.java
@@ -17,6 +17,7 @@
    /**
     * 确保指定列的有效性,并返回相应的实体对象
     *      selectOne方法
     *      此方法用于验证数据库中某列的值是否存在,并返回包含该值的实体对象
     *      如果指定的值不存在或为null,将抛出异常
     *
@@ -54,7 +55,8 @@
            if (columnExtractors != null && columnExtractors.length > 0) {
                wrapper.select(columnExtractors);
            }
            wrapper.eq(columnExtractor, valueToCheck);
            wrapper.eq(columnExtractor, valueToCheck)
                    .last("limit 1");
            // 执行查询并获取结果实体
            entity = queryWrapperExtractor.apply(wrapper);
@@ -85,8 +87,9 @@
    /**
     * 确保指定列的有效性,并返回相应的实体对象列表
     * 此方法用于验证数据库中某列的值是否存在,并返回包含该值的实体对象列表
     * 如果指定的值不存在或为null,将抛出异常
     *      selectList方法
     *      此方法用于验证数据库中某列的值是否存在,并返回包含该值的实体对象列表
     *      如果指定的值不存在或为null,将抛出异常
     *
     * @param valueToCheck 需要验证的值
     * @param columnExtractor 列值提取器,用于指定需要验证的列
@@ -135,7 +138,8 @@
    }
    /**
     * 确保指定列的值在数据库中是存在的,
     * 确保指定列的值在数据库中是存在的
     *      selectOne方法
     *      该方法通过查询数据库来验证给定的列值是否存在如果不存在,则抛出异常
     *
     * @param valueToCheck 需要验证的列值
@@ -183,6 +187,7 @@
    /**
     * 确保指定值在数据库中是唯一的
     *      selectCount方法
     *      该方法通过查询数据库来验证给定的列值是否已经存在,如果存在,则抛出异常,以确保数据的唯一性
     *
     * @param valueToCheck 需要检查的值
@@ -252,4 +257,24 @@
    }
    /**
     * 确保两个参数不相等,如果相等则抛出异常
     *
     * @param value1 第一个参数
     * @param value2 第二个参数
     * @param errMsg 当两个参数相等时抛出的异常消息格式字符串
     * @throws FebsException 如果两个参数相等
     */
    public static <T> void ensureNotEqual(
            T value1,
            T value2,
            String errMsg) {
        // 使用 Objects.equals 处理 null 值,避免显式 null 检查
        if (Objects.equals(value1, value2)) {
            // 延迟字符串格式化,只在需要抛出异常时进行
            throw new FebsException(StrUtil.format(errMsg, value1, value2));
        }
    }
}