Как я могу найти столбец, в котором возникает таблица SQLIntegrityConstraintViolationException
? когда я поймаю это исключение, существует только сообщение (как обычный текст) и SQLState
. но я не могу найти имя таблицы и столбца, разделенные для генерации дружественного пользователю сообщения
Как и все SQLExceptions, детали зависят от вашего поставщика БД. Если вам повезет, вы можете разобрать exception.getMessage()
для этой информации. Но для этого нет общего метода Java-side.
Стек содержит имя уникального ключа, который был нарушен. Вы можете сравнить имена ключа, который вы создали параллельно с базой данных, которую вы запрашиваете, в предложении catch и соответствующим образом генерировать сообщение об ошибке.