import org.springframework.dao.DataRetrievalFailureException;
import org.springframework.dao.IncorrectResultSizeDataAccessException;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.function.Supplier;
/**
* 针对逻辑和事务控制的断言
*
*/
public class TAssert {
/**
* @param expectedSize 期望值
* @param actualSize 实际值
* @return
*/
public static boolean notEquals(int expectedSize, int actualSize) {
return actualSize != expectedSize;
}
/**
* @param expectedSize 期望值
* @param actualSize 实际值
* @param message 自定义异常信息
*/
public static void throwsIfNotEquals(int expectedSize, int actualSize, String message) {
if (notEquals(expectedSize, actualSize))
throw new DataRetrievalFailureException(message);
}
/**
* @param expectedSize 期望值
* @param actualSize 实际值
* @param exceptionSupplier 异常提供函数
* @param <T>
*/
public static <T extends RuntimeException> void throwsIfNotEquals(int expectedSize, int actualSize, Supplier<T> exceptionSupplier) {
if (notEquals(expectedSize, actualSize))
throw exceptionSupplier.get();
}
/**
* @param expectedSize 期望值
* @param actualSize 实际值
*/
public static void throwsIfNotEquals(int expectedSize, int actualSize) {
if (notEquals(expectedSize, actualSize))
throw new IncorrectResultSizeDataAccessException(expectedSize, expectedSize);
}
/**
* 如果实际值与期望值不相等,回滚事务,并返回true,否则返回false
*
* @param expectedSize 期望值
* @param actualSize 实际值
* @return
*/
public static boolean rollBackIfNotEquals(int expectedSize, int actualSize) {
if (notEquals(expectedSize, actualSize)) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return true;
}
return false;
}
}
最后
以上就是健忘唇彩最近收集整理的关于针对逻辑和事务控制的工具类的全部内容,更多相关针对逻辑和事务控制内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复