1

hibernate-validator.jar と javax.validation-api.jar をクラスパスに配置した後、古い検証がオフになり、org.springframework.dao.DataIntegrityViolationExceptionがorg.hibernate.exception.ConstraintViolationExceptionに置き換えられ、発生した SQL 例外がラップされます。テーブルの制約であり、これが多くの問題を引き起こしています。

JSR-303 検証が自動的にオンになるため、何も検証されなくなります。

Jersey を 2.4 にアップグレードできるようにするには、この 2 つの jar を配置する必要があります。これは、これら 2 つの jar に依存しています。

これらのプロパティを hibernate.properties ファイルに入れても役に立ちません。休止状態は単にそれらを無視しますが、起動時にプロパティをロードします

リソース hibernate.properties からロードされたプロパティ: {hibernate.validator.apply_to_ddl=false,hibernate.validator.autoregister_listeners=false など}

javax.persistence.validation.mode=none
hibernate.validator.autoregister_listeners=false
hibernate.validator.apply_to_ddl=false

私はSpring 3.2.4をSessionFactoryとともに使用し、制約のあるhbm.xmlファイルからリソースをマッピングしています.hibernate 3.6.9.final、hibernate-validator 5.0.final、javax.validator-api 1.1.0.Final

クラスパスに hibernate.validator があるときに春の検証を有効にする方法がわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

1

javax.persistence.validation.modeに設定することnonehibernate.cfg.xml(またはpersistence.xmlJPA を使用する場合) 、 Bean Validation を無効にすることができます。

興味深いことに、モデルに制約注釈があるようです (そうしないと、 が表示されないはずなConstrainViolationExceptionので、なぜそれらを検証したくないのでしょうか?

于 2013-11-11T08:11:14.620 に答える
0

クラスパスに hibernate バリデーターを追加すると hibernate コアの検証がオフになるため、このプロパティを追加してオンに戻す必要がありました

<prop key="hibernate.check_nullability">true</prop>
于 2013-11-12T19:56:24.987 に答える