2016-02-29 2 views
1

Я новичок в спящий режим валидаторJSR303 Hibernate динамический валидатор

Я хотел бы иметь одну аннотацию и много реализаций. Проблема заключается в том, что аннотацию следует размещать в модуле домена (api) и реализациях в соответствующих модулях реализации (xx-command, xx-query). Поэтому параметр validatedBy аннотации @Constraint должен быть пустым.
Могу ли я каким-то образом динамически сказать спящий режим использовать все реализации указанной аннотации, которые могут передать тип, который мне нужен. Также я хотел бы иметь реализации в более чем одном подмодуле.

@Target({FIELD, PARAMETER}) 
@Retention(RUNTIME) 
@Documented 
@Constraint(validatedBy = {}) 
public @interface CanNotExists { 

    String message() default "com.foo.api.domain.validation.annotation.CanNotExists.message"; 

    Class<?>[] groups() default {}; 

    Class<? extends Payload>[] payload() default {}; 
} 

это моя структура проекта (в порядке зависимостей аксессора-команде зависит от аксессора-запрос, dependes аксессора-запроса на infrastrucutre ...)
-api
-infrastructure
-accessor-запрос
-accessor-команда

Я нашел this вопрос и хотел использовать конфигурацию XML (см раздел редактирования в ответе), но это не полезно, потому что я хотел бы использовать реализацию во многих модулях >>> как упоминалось here

Данный объект может быть настроен только один раз во всех файлах конфигурации. То же самое относится к определениям ограничений для данной аннотации ограничений. Это может произойти только в одном файле сопоставления. Если эти правила нарушены, генерируется исключение ValidationException.

Поэтому я не могу разделить ограничения на несколько xml-конфигураций.

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

Благодаря

ответ

0

Ваш вопрос помечается «весна», так что может быть, вы можете использовать проверку пружин, что под капотом использует спящий режим:

[spring validation][1] 

Пусть ваш валидатор реализовать интерфейс пружинный валидатора, создать это он.

Смежные вопросы