0

Hibernate Validator 4 をスタンドアロン パッケージとして (つまり、Spring/Hibernate なしで) 使用したいと考えています。私が見つけたコードは次のとおりです (MyBean は Hibernate Validator 4 アノテーションを持つ Bean であり、myBean はそのインスタンスです)、実際に制約違反を返します。

    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator validator = factory.getValidator();   
    Set<ConstraintViolation<MyBean>> result = validator.validate(myBean);

しかし、Validator インスタンスがクラスごとにあるようには見えないことに気付きました。誰かが知っている場合: Validator は myBean の処理から取得した制約をキャッシュしますか? もしそうなら、おそらく、これらの制約がキャッシュされる正確な場所も知っているでしょうか?

4

1 に答える 1

0

あなたが言うように、Hibernate Validator はメタデータをキャッシュします。これが担当するクラスです - https://github.com/hibernate/hibernate-validator/blob/master/engine/src/main/java/org/hibernate/validator/internal/metadata/BeanMetaDataManager.java

キャッシュと対話する API がないことに注意してください。キャッシュはメモリ要求後にクリアされます。

于 2013-05-30T08:10:45.630 に答える