質問

JSF 2、MyFaces、Hibernate-Validator-4.1.0.final.jarを使用しています。

フォームで入力された値を検証するために、hibernate-validatorを使用します。

public class Client {
   @Persistent
   @Pattern(regexp = "|.+@.+\\.[a-z]+", message = "Email format is invalid.")
   private String email;
   //getter
}

CSVデータを解析してデータベースレコードを作成するバルクアップロードモジュールを開発しています。

...
try{
  Client cl=new Client();
  cl.setEmail("from_csv_data");
}catch( //validation failed

ここで同じバリデーターを再利用するにはどうすればよいですか?



set> constraintviolations = validator.validate(nc);
この例外をスローします

SEVERE: Received 'java.lang.NoSuchMethodError' when invoking action listener '#{clientBean.bulkUpload}' for component 'j_idt86'

2011年1月28日8:35:39 AM javax.faces.event.methodexpressionactionListener Processaction
重度:java.lang.nosuchmethoderror:javax.persistence.persistence.getpersistenceutil()ljavax/stastence/persistenceutil; atorg.hibernate.validator.engine.resolver.jpatraversableresolver.isreachable(jpatraversableresolver.java:62)

このソリューションを試しました リンク
Hibernate-JPA-2.0-API-1.0.0.Final.jar、Hibernate-Validator-4.1.0.final.jarを持っています
この作業を行うには、他の瓶が必要ですか?

役に立ちましたか?

解決

次のようなものを使用して、バリデーターを手動で呼び出すことができます。

ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

Validator validator = factory.getValidator();

Client client = new Client();

Set<ConstraintViolation<Client>> constraintViolations = validator.validate(client);

他のヒント

ClassPathに別の不完全なJPA 2 JARファイルがある可能性が高いでしょう。残念ながら、この瓶の不完全なバージョンのいくつかは、ある段階でリリースされました(たとえばToplink)。 JPAクラスを含むJARについては、ClassPathを確認してください。参照してください https://forum.hibernate.org/viewtopic.php?f=9&t=999855

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top