Я искал this post of using JSR-303 to validate a collection of objects. Решение отлично работает с аннотациями, но я не могу заставить его работать с конфигурацией формата XML Hibernate Validator.Как проверить коллекцию аннотированных объектов в XML
Например, у меня есть код, подобный этому:
public class DataSet
{
Collection<Data> dataCollection;
public Collection<Data> getDataCollection() {...}
}
От там, у меня есть валидатора/аннотацию DataValidator
/@ValidData
.
В XML, я делаю это первый:
<bean class="DataSet"
ignore-annotations="true">
<field name="dataCollection">
<valid/>
<constraint annotation="ValidData"/>
</field>
</bean>
Однако, я получаю следующее исключение:
Exception in thread "main" javax.validation.UnexpectedTypeException: No validator could be found for type: java.util.Collection<DataSet>
Так я поменять <valid>
тег с <constraint>
один в XML. Кажется, это не соответствует схеме XSD, и XML больше не может быть проанализирован.
<bean class="DataSet"
ignore-annotations="true">
<field name="dataCollection">
<constraint annotation="ValidData"/>
<valid/>
</field>
</bean>
Exception in thread "main" javax.validation.ValidationException: Error parsing mapping file.
Кто-нибудь знает, как я могу использовать XML для проверки этой коллекции с помощью обязательного валидатора?
Исходя из первого исключения, я бы сказал, что для '@ ValidData' для типа' Collection' не существует валидатора ограничений. Какие валидаторы у вас есть для этого ограничения? – Gunnar
Например, sake, @ValidData можно считать аннотацией пользовательского ограничения. DataValidator - это специальный валидатор, связанный посредством аннотации. – plusjeff