Mam klasę komponentów bean z wieloma (niestandardowymi) ograniczeniami wewnętrznymi i jednym ograniczeniem na poziomie klasy. Chciałbym sprawdzić wewnętrzne ograniczenia przed ograniczeniem na poziomie klasy. Kod wygląda następująco:Sprawdzanie poprawności Java Bean: GroupSequence z ograniczeniem klasy Klasa
@GroupSequence({ Inner.class, NewSlotBean.class })
@TotalBeanValid(groups = NewSlotBean.class)
public class NewSlotBean {
@DayMonthYearString(groups = Inner.class)
private String slotDay;
@TimeString(groups = Inner.class)
private String slotBegin;
@LengthString(groups = Inner.class)
private String slotLength;
}
(Inner
jest tylko pusta interfejs leżącego gdzieś).
Jednak, gdy próbuję to uruchomić, ograniczenie na poziomie klasy nie zostanie w ogóle sprawdzone. Kiedy próbuję zdefiniować GroupSequence jak
@GroupSequence({ Inner.class, Outer.class })
(z Outer
jest przypadkowa Interface), otrzymuję wyjątek:
javax.validation.GroupDefinitionException: ...*.beans.NewSlotBean must be part of the redefined default group sequence.
Czy S/O wiedzieć, jak upewnić się, że klasa na poziomie ograniczenie jest sprawdzane po wewnętrznych? (!. To nie wydaje się być domyślnym miałem problemów z losowych to pojawiały się po jakimś czasie)
Tylko poprawa propozycja na doskonałą odpowiedź: prawdopodobnie lepsze pogrupowanie walidacje na odwrót: '@GroupSequence ({NewSlotBean.class, ClassLevel.class}) @TotalBeanValid (grupy) = ClassLevel.class 'w klasie' NewSlotBean', a następnie usuń grupę walidacji 'InnerGroup' i przypisania do grupy pól. Walidacje pól są automatycznie przypisywane do domyślnej grupy sprawdzania poprawności. Mniej kodu, czystsze. – jannis