我理解如果我尝试使用JPA插入记录并且如果它违反了唯一约束,则会抛出一个包含MySQLIntegrityConstraintViolationException的异常。
我想向用户显示用户友好的消息。所以我想得到发生违规的字段名称。我可以使用cause来获取消息,该消息为密钥'DOCUMENT_NUMBER'提供重复条目'1'的消息。
但我觉得依赖于消息(e.getCause()。getCause()。getMessage())不是一个好主意。
该实体可能包含其他几个独特的约束,例如emailid,增值税号等。
所以我想获得发生约束违规的字段名称。
有人可以帮助如何获取字段名称吗?
提前致谢, Kitty的
答案 0 :(得分:0)
你可以尝试下面的代码
try{
//here your code
...
}catch (ConstraintViolationException e) {
for(ConstraintViolation violation : e.getConstraintViolations()) {
System.out.println(violation.getMessage());
}
}
另请参阅ConstraintViolationException
的详细说明,请参阅Java doc。