2013-06-25 3 views
0

Применение бросков java.sql.SQLIntegrityConstraintViolationException и имеет имя contraint, как показано нижеExtract Constraint Имя из 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/прямой путь, чтобы получить имя ограничения CONSTRAINT.UNIQUE_WT из объекта исключения (java.sql.SQLIntegrityConstraintViolationException)?

Идея есть, если я могу получить имя ограничения, я могу предоставить правильное сообщение об ошибке.

+0

Согласно [Javadoc] (http://docs.oracle.com/javase/6/docs/api/java/sql/SQLIntegrityConstraintViolationException.html) кажется, что нет никакого способа предусмотрено, что. – marsze

ответ

0

Для этого нет способа, но вы можете сделать это, используя предоставленное сообщение.

String constraint = null; 
try { 
    ... 
} catch(SQLIntegrityConstraintViolationException e) { 
    constraint = e.getMessage.split("**")[1]; 
} 
Смежные вопросы