2010-09-13 2 views
1

Я использую hibernate-реализацию javax.validation и хотел бы знать, как любой пользователь мог применить аннотацию ограничения @NotNull ко всем полям класса, а не к каждому отдельному полю?Как применить ограничение @NotNull ко всем полям класса с помощью javax.validation?

Я бы предпочел применить ограничение @NotNull как значение по умолчанию в моем проекте, чтобы избежать засорения кода с помощью @NotNull аннотаций в каждом поле. В идеале было бы предпочтительнее определить пользовательское ограничение «@MayBeNull» для аннотирования любых полей, которые могут быть пустыми.

ответ

1

Действительно ли имеет смысл в вашем случае для проверки все полей с нулевым значением? Например, с базовыми типами, такими как int, long и т. Д.

В любом случае, проверка боба не предлагает функциональность, о которой вы просите. Вы можете написать специальное ограничение класса @MyNotNull, которое через отражение подтвердило все поля против null. Лично я рекомендую против него.

+0

Спасибо Харди. Я попробовал написать специальный валидатор. Хотя это возможно, как вы предполагали, я склонен сейчас согласиться с тем, что это не самое элегантное решение. Я думаю, что удобство, которое он добавляет, недостаточно для преимущества. Недостатком пользовательской проверки на уровне класса является то, что вы теряете способность идентифицировать и сообщать, какие поля неправильно установлены в нуль. На данный момент я буду придерживаться явных аннотаций на уровне поля. – Paco