Как проверить пользовательские свойства? - PullRequest
4 голосов
/ 10 сентября 2009

Я играл с валидатором nhibernate и получил почти идеальное решение.

Я могу определить свойство для проверки, и это делается при предварительном сохранении. Но у меня есть несколько случаев, когда это не работает.

Давайте предположим, что у меня есть объект с именем person, и через nhibernate я сопоставил адрес (также объект) как свойство person (фактически это список адресов).

Когда я сохраняю человека, мой адрес не проверяется.

Форма для ввода информации составлена ​​из частичных форм. Было бы неплохо, если бы проверка адреса могла быть добавлена ​​в список проверки этого человека, но это не обязательно.

Мне нужно общее решение, я не могу подтвердить «рукой», например. если человек тогда проверяет адрес ... Каким-то образом валидатор должен видеть, что за свойством есть объект, который я также должен проверить.

Обновление: я ищу способ проверки сопоставленных объектов (hasmany).

Ответы [ 2 ]

1 голос
/ 22 сентября 2009

После перехода на новейшую версию валидатора nhibernate проверка работает для подклассов и сопоставленных классов. Вместе с xVal 1.0 это очень удачное решение.

Теперь я могу определить для каждого свойства, в отношении чего оно должно проверяться (например, для регулярного выражения, длины и т. Д.), И я получаю сообщение на стороне клиента через xVal, на стороне сервера через nHibernate Validator. Фактически они разделяют шаблон проверки и сообщения об ошибках.

Я бы порекомендовал это для любого проекта nHibernate, где требуется простое определение для проверки и обмена сообщениями.

1 голос
/ 22 сентября 2009

Если вы пытаетесь включить проверку входных данных в эти классы, что, я думаю, вы пытаетесь сделать, я бы посоветовал против этого, поскольку это бизнес-логика. Все, что вы найдете в Hibernate, и делает это только для обеспечения ограничений в базе данных (т. Е. Столбец, не равный NULL).

Я бы порекомендовал вам создать служебный класс или метод для проверки входных данных. Если вам нужно добавить ограничения базы данных в свойства сущности, это обязательно сделайте, но я бы не стал полагаться на них для проверки входных данных.

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