Стратегия валидации для единицы рабочего шаблона

StackOverflow https://stackoverflow.com/questions/3000637

Вопрос

Когда я использую единица рабочего шаблона (С JPA) я получаю сущность из репозитория, измените его и сохраняю модификации и блока работы неявно в базу данных.

Теперь мне интересно, как выполнять проверку с устройством рабочего шаблона. Если я применю изменения (с пользовательского ввода) в объект домена и проверяйте после этого, значения этого объекта будут изменены, даже если проверка не удалась. Что такое способ избежать записи объекта с незаконным состоянием в базу данных? Откатитесь от единицы работы?

Одним из целей OOP является то, что объекты наблюдают за своим собственным государством, чтобы они никогда не принимали незаконные ценности. Для этого подхода мне пришлось бросать исключения, и это противоположность валидации фасоли (и весной валидации). Но, может быть, это проще и лучше.

Какая стратегия валидации вы бы использовали (в дизайне драйверов домена)?

Это было полезно?

Решение

Что такое способ избежать записи объекта с незаконным состоянием в базу данных? Откатитесь от единицы работы?

Если вы используете API валидации компонентов компонента, он будет выбросить исключение, и изменения не будут сохраняться (если включено, проверка должна происходить на заключительном этапе PrePersist, PreUpdate, а также PreRemove Срок службы жизненного цикла).

С JPA 2.0 просто поместите реализацию проверки бобов на пути класса.

С JPA 1.0 см. Это предыдущий ответ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top