2011-02-17 18 views
3

私は@Validアノテーションを使用するJDBCを持つSpring MVCを持っており、検証を含めて非常にうまく動作します。Spring MVC、Hibernate 3、@Valid問題

(JDBCの代わりに)を使用する同様のWebアプリケーションを作成しました。これは今までのところうまく動作します。

私はだから私は追加など複数のドメイン

を続行する前に検証「にボルト」にすることを決めたようにコントローラで保存プロセスに@Valid

@RequestMapping(value = "/productgroup/save", method = RequestMethod.POST) 
public String updateProductGroup(**@Valid** ProductGroup productGroup, BindingResult bindingResult) 

です私はuの午前

SEVERE: Servlet.service() for servlet appServlet threw exception 
java.lang.NoSuchMethodError: javax.persistence.Persistence.getPersistenceUtil()Ljavax/persistence/PersistenceUtil; 
    at org.hibernate.validator.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:33) 
    at org.hibernate.validator.engine.resolver.DefaultTraversableResolver.isReachable(DefaultTraversableResolver.java:112) 
    at org.hibernate.validator.engine.resolver.SingleThreadCachedTraversableResolver.isReachable(SingleThreadCachedTraversableResolver.java:47) 
    at org.hibernate.validator.engine.ValidatorImpl.isValidationRequired(ValidatorImpl.java:764) 
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:331) 
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForRedefinedDefaultGroup(ValidatorImpl.java:278) 
    at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:260) 
    at org.hibernate.validator.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:213) 
    at org.hibernate.validator.engine.ValidatorImpl.validate(ValidatorImpl.java:119) 
    at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:86)

:私が作るとして、今それがクラッシュしのみ変更歌う: org.hibernate 休止-バリ 4.0.2.GA 瓶 javax.validation 検証-API 1.0.0.GA

私は両方ProductGroupのproductGroupNameに@NotEmptyを試してみましたフィールドとそのゲッター。

アイデア?

私は私のJDBCのバージョンで動作するようにバリデーションを取得問題はなかったと私は本当にここに何の問題も予想していなかった

...

答えて

3

にHibernate ValidatorはJPA上の任意の依存関係を持っていますが、JPAがクラスパスに存在する、休止状態バリデータ4ではJPA 2.0が必要です。あなたの場合、クラスパスにJPA 1.0があります。

つまり、Hibernate Validator 4は、Hibernate 3.5以上と互換性があります。古いバージョンのHibernateについては、Hibernate Compatibility Matrixを参照してください。

+0

迅速な対応に感謝します。本当に感謝しています。私は春と冬眠に新しいので、私と一緒にご負担ください。このwebappは単なる私の学習方法なので、必要に応じて何かを変更することができます。私が指定した唯一の他のHibernate jarは、依存関係を持つhibernate-entitymanager 3.3.2.GAです。私は、私が使うべきHibernateのバージョンについて少し混乱しています。私が進めるための最良のセットアップに関するアドバイス? – Lyndon

+0

@Lyndon:Hibernateのバージョンに制限がない場合は、最新バージョンの3.6.1-Finalを使用してください。 – axtavt

+0

@axtavt:私はhibernate-entitymanager 3.5.5-Finalを取得してから(自分の返信を読む前に)pom.xmlに入れます。でも今は私のコントローラーに依頼することさえできません!リクエストされたリソース(/Product/productgroups.html)は利用できません。起動時に、私は多くのINFO文が出てきて、そのうちの1つは出てくるorg.hibernateです:INFO:org.hibernate.cfg.Environment - hibernate.propertiesが見つかりません。 Hibernateを設定する新しい方法はありますか? INFO:... DefaultAnnotationHandlerMapping - マッピングされたURLパス[/ productgroups /]をハンドラ 'productGroupController'に送ります – Lyndon

関連する問題