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>
そのため、タグをXMLの<valid>
タグと交換します。<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 を使用してこのコレクションをカスタムバリデーターで検証する方法を知っている人はいますか?