java如何验证XML中带注释对象的集合
我在看this post of using JSR-303 to validate a collection of objects。该解决方案与注释配合得很好,但我似乎无法将其与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>
标记与XML中的<constraint>
标记交换。这似乎对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通过自定义验证器验证此集合吗
# 1 楼答案
关键是在XML中将类级约束注释添加到数据POJO本身