java - 如何检查违反了哪些约束?

标签 java sql postgresql exception

我习惯于检查用户是否尝试通过捕获 ConsratinViolationException 来存储有效数据,就像这样:

try {
    //persisitng to a db
} 
catch (ConstraintViolationException e){
    //Print message
}

我正在使用 PostgreSQL,现在我遇到了一个问题,即 persisitng 可能会违反多个不同的约束。我如何在 catch 子句中区分具体违反了哪些约束?

我需要这样做,因为程序将根据它打印消息。

最佳答案

类似下面的内容

catch (ConstraintViolationException conEx) {
            if (conEx.getConstraintName().contains("xyz_fK")) {
                //TODO Project Entity is violating it's constrain
            } 
            LOGGER.Info( "My log message", conEx.getConstraintName());
            LOGGER.ERROR( "My log message", conEx);

关于java - 如何检查违反了哪些约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30841763/

相关文章:

java - 启动 JProfiler 时软件报告 Missing awt 错误

java - 获取列表的 ArrayIndexOutOfBoundsException

java - 无法在 Android Studio 中使用 BaseGameActivity

c# oracle sql 准备语句

Mysql select 查询同一列的多个条件

postgresql - 删除行时触发错误

java - (Java downcasting) 这个例子我做错了什么?

mysql - SQL查询: Need to speed up this query that diffs against two databases

sql查找具有特定类型的电影

postgresql - 使用保存点在 clojure.jdbc 和 postgres 中进行测试的嵌套事务