JPA: добавление не должно завершиться ошибкой, если нельзя добавить одну из строк - PullRequest
1 голос
/ 15 июня 2011

Я использую JPA + Hibernate.

У меня есть 2 объекта (Parent, Child) с соединением OneToMany между ними.Я добавляю список потомков к родителю следующим образом:

parent.setChildrent(childrenSet);
getEntityManager().merge(parent);

Если одна из дочерних сущностей содержит недопустимые значения (например, слишком длинная строка), ее вставка завершится неудачно, и вся транзакция завершится неудачей.

Есть ли способ игнорировать / регистрировать ошибку и продолжать объединение для остальных детей?

Я понимаю, что могу добавлять детей по одному, но есть ли лучшийрешение?

спасибо.

1 Ответ

1 голос
/ 15 июня 2011

Если один из дочерних объектов содержит недопустимые значения (например, слишком длинная строка), ...

Вы не должны обрабатывать подобные проблемы, обрабатывая ошибки базы данных. Попробуйте отфильтровать слишком длинные строки или недопустимые значения в вашем приложении, прежде чем начинать транзакцию в базу данных.

В случае ошибки базы данных выполняется откат и все изменения, выполненные во время этой транзакции, будут отменены.

С наилучшими пожеланиями

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