У меня есть объект JPA с составным уникальным ключом, и я написал планировщик, который загружает данные в таблицу этого объекта. Только у меня есть исключение при загрузке в случае наличия уникального нарушения ключа. Я хочу подавить любое исключение исключения ограничения ограничений из моей базы данных и продолжить загрузку всех других объектов. Я использую транзакции, и я бы не хотел блокировать всю таблицу, чтобы проверить уникальность, как ее используют другие пользователи.Как обойти исключение уникального ограничения в JPA 2
ответ
Я думаю, вы можете перебрать все объекты и перенесите метод, который загрузка объекта в таблицу с помощью
try{} catch(JPAException exp){}
При этом, если исключение произошло, когда нагрузка какие-либо конкретные данные, итерация будет продолжаться и другие объекты все еще обрабатываются.
Я попробовал 'try {} catch (SQLException exp) {продолжить;}' и даже 'try {} catch (Exception exp) {continue;}', но он не работает. – cdaiga
Можете ли вы предоставить исходный код? –
объясните, что вы имеете в виду «не работает». Что не работает? Если вы получаете исключение ограничения, но блок сохранения находится в несогласованном состоянии - он не знает, какие утверждения или объекты могут привести к ошибке и поэтому не могут быть использованы. Вам нужно исправить проблему и повторить попытку в новом контексте/транзакции. – Chris