我正在查看这篇关于使用 JSR-303 验证对象集合的帖子。该解决方案适用于注释,但我似乎无法让它与 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 通过必须自定义验证器来验证这个集合?