Я пытаюсь понять, как можно получить сообщение об ошибке sql из базы данных во время неудачного запроса через спящий режим.
В моей базе данных есть таблица:
TABLE applications
(
id serial NOT NULL,
name character varying(80) NOT NULL,
CONSTRAINT applications_pkey PRIMARY KEY (id),
CONSTRAINT applications_name_key UNIQUE (name)
)
Я пытаюсь дважды вставить в эту строку таблицы с тем же значением имени ячейки. Firs запрос уже сделан, когда второй запрос, я получаю только сообщение из исключенного catch:
could not execute statement
это слишком мало, что должно помочь мне найти то, что не так? Я хочу получить информацию из базы данных что-то вроде
SQL Error. Duplicate column 'name' values
Hibernate с HibernateException просто покрывает ошибку истинной причины. Кто-нибудь знает, как избежать подобной ситуации?
Сначала вы shuold getCause Hibernate Exception, чем вы можете получить статус ошибки sql:
catch (HibernateException ex) {
Throwable cause = ex.getCause();
if (cause instanceof SQLException) {
System.out.println(cause.getMessage());
}
}