У меня есть метод, который аннотирован @Transactional, и мы производим массовое обновление, используя метод save (Iterable entity) класса SimpleJPARepository из библиотеки spring-data-jpa.У меня есть сценарий, где у меня есть около 20000 записей обрабатываются этим методом.Кажется, что есть немного объектов, которые не были бы хорошо сформированы с точки зрения типов данных, как ожидает колонка оракула.Например: имя атрибута «имя объекта» имеет значение «1234» (которое не принимается Oracle-БД в качестве типа данных в БД - VARCHAR).
Поскольку эта проблема возникает в нескольких записях из 20000 записей, сохраните (Метод итерируемых сущностей) выдает исключение «java.sql.SQLSyntaxErrorException: ORA-01722: неверный номер» и не сохраняет ни одну из 20000 записей.Есть ли способ определить, какие записи вызывают это исключение, и исключить их обновление в базе данных?
Я вижу, что есть несколько вариантов, таких как проверка в классах DOMAIN (что не очень выполнимо для меня, так как у меня много классов Domain, и изменение их будет иметь большое влияние на мое приложение).Еще одна опция, которую я вижу, использует «пакетные вставки JPA с Hibernate».Опять же, даже при таком подходе пакетных вставок я не уверен, смогу ли я получить информацию о записях, которые вызывают исключение.
Любые предложения по этому вопросу будут очень полезны.