应用程序抛出 java.sql.SQLIntegrityConstraintViolationException,其约束名称如下
Exception in thread "main" javax.ejb.EJBException: EJB Exception: ; nested exception is:
javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.1.2.v20101206-r8635): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (**CONSTRAINT.UNIQUE_WT**) violated
问题:是否有 API/直接方法从异常对象 (java.sql.SQLIntegrityConstraintViolationException) 获取约束名称 CONSTRAINT.UNIQUE_WT?
想法是,如果我可以获得约束名称,我就可以提供正确的错误消息。
最佳答案
没有方法可以实现此目的,但您可以使用提供的消息来完成此操作。
String constraint = null;
try {
...
} catch(SQLIntegrityConstraintViolationException e) {
constraint = e.getMessage.split("**")[1];
}
关于java - 从 java.sql.SQLIntegrityConstraintViolationException 中提取约束名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17300398/