From 688cd84634ed51a5d6d8710c5875481d913cd935 Mon Sep 17 00:00:00 2001 From: simsevenx Date: Wed, 6 Apr 2022 17:46:36 +0800 Subject: [PATCH] handle SQLIntegrityConstraintViolationException, Column cannot be null (#47) --- .../java/io/xream/sqli}/exception/SqliRumtimeException.java | 2 +- .../src/main/java/io/xream/sqli/util/SqliExceptionUtil.java | 3 +++ .../src/main/java/io/xream/sqli/repository/dao/DaoImpl.java | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) rename {sqli-repo/src/main/java/io/xream/sqli/repository => sqli-builder/src/main/java/io/xream/sqli}/exception/SqliRumtimeException.java (93%) diff --git a/sqli-repo/src/main/java/io/xream/sqli/repository/exception/SqliRumtimeException.java b/sqli-builder/src/main/java/io/xream/sqli/exception/SqliRumtimeException.java similarity index 93% rename from sqli-repo/src/main/java/io/xream/sqli/repository/exception/SqliRumtimeException.java rename to sqli-builder/src/main/java/io/xream/sqli/exception/SqliRumtimeException.java index b5753730..b125c09d 100644 --- a/sqli-repo/src/main/java/io/xream/sqli/repository/exception/SqliRumtimeException.java +++ b/sqli-builder/src/main/java/io/xream/sqli/exception/SqliRumtimeException.java @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.xream.sqli.repository.exception; +package io.xream.sqli.exception; /** * @author Sim diff --git a/sqli-builder/src/main/java/io/xream/sqli/util/SqliExceptionUtil.java b/sqli-builder/src/main/java/io/xream/sqli/util/SqliExceptionUtil.java index 9fe1fe70..db950982 100644 --- a/sqli-builder/src/main/java/io/xream/sqli/util/SqliExceptionUtil.java +++ b/sqli-builder/src/main/java/io/xream/sqli/util/SqliExceptionUtil.java @@ -56,6 +56,9 @@ public static Throwable unwrapThrowable(Throwable wrapped) { } else if (unwrapped instanceof UndeclaredThrowableException) { unwrapped = ((UndeclaredThrowableException) unwrapped).getUndeclaredThrowable(); } else { + Throwable t = wrapped.getCause(); + if (t != null) + return t; return unwrapped; } } diff --git a/sqli-repo/src/main/java/io/xream/sqli/repository/dao/DaoImpl.java b/sqli-repo/src/main/java/io/xream/sqli/repository/dao/DaoImpl.java index 9b50d794..864d3c4d 100644 --- a/sqli-repo/src/main/java/io/xream/sqli/repository/dao/DaoImpl.java +++ b/sqli-repo/src/main/java/io/xream/sqli/repository/dao/DaoImpl.java @@ -25,11 +25,11 @@ import io.xream.sqli.core.RowHandler; import io.xream.sqli.dialect.Dialect; import io.xream.sqli.exception.ExceptionTranslator; +import io.xream.sqli.exception.SqliRumtimeException; import io.xream.sqli.page.Page; import io.xream.sqli.parser.BeanElement; import io.xream.sqli.parser.Parsed; import io.xream.sqli.parser.Parser; -import io.xream.sqli.repository.exception.SqliRumtimeException; import io.xream.sqli.repository.exception.TooManyResultsException; import io.xream.sqli.repository.init.SqlInit; import io.xream.sqli.repository.init.SqlTemplate;