10

使用しています

  • hibernate-core-4.0.1.Final
  • hibernate-validator-4.2.0.Final

遅延ロード可能なエンティティがあります

@NotNull
@OneToOne(fetch = FetchType.LAZY,optional = false,cascade = CascadeType.PERSIST)
@JoinColumn(name="library_id")
private Library library;

public Library getLibray() {
    return library;
}

および defaultValidator

 private final ValidatorFactory factory = Validation
           .buildDefaultValidatorFactory();
 private final Validator val = factory.getValidator();

などの注釈が付けられた添付されていないエンティティと添付されたエンティティを検証しようとして@NotNull, @Sizeいるとき。すべて正常に動作します。しかし、Lazy Load を介してエンティティをロードし、それを検証しようとすると。バリデーターは毎回失敗します。これは、Hibernate Proxy オブジェクトを取得していることが原因のようです。

プロキシを解除するだけで、この「問題」を簡単に回避できます(ただし、これは私の状況ではあまり有利ではありません)。

これは予想される動作ですか?OpenJPA、EclipseLink で同じ動作が得られますか?

皆さん、素敵な日曜日をお過ごしください ;) 質問が明確になったことを願っていますか?

4

1 に答える 1