クラス フィールドに JSR 303 検証アノテーションが定義されたクラスがたくさんあります。ORM と遅延読み込みを使用しているため、フィールドではなくゲッターで制約を定義する必要があるという問題があります ( ORM 統合)。
モデル定義全体の変更に時間を費やしたくありません。したがって、私の考えは、実行時に制約を移動することです。exampleのようにBeanDescriptorで制約定義を取得できることがわかりました。フィールド レベルで定義されたすべての制約にアクセスできます。
私の問題は、現在の制約を変更するためのセッターメソッドがないことです。コードをデバッグすると、制約を getter アクセスに移動するために変更する必要があるのは 2 つのポイントだけであることがわかりましたが、どうすればよいかわかりません。
{MetaConstraint{constraintType=javax.validation.constraints.NotNull, location=BeanConstraintLocation{beanClass=ServiceAddress, propertyName='isVirtual' }}=java.lang.Object@56811df,
MetaConstraint{constraintType=org.hibernate.validator.constraints.NotEmpty, location=BeanConstraintLocation{beanClass=ServiceAddress, propertyName='postalCode' }}=java.lang.Object@56811df,
MetaConstraint{constraintType=org.hibernate.validator.constraints.NotEmpty, location=BeanConstraintLocation{beanClass=ServiceAddress, propertyName='code' }}=java.lang.Object@56811df,
...}
ありがとう、あなたの助けを願っています。