2017-11-15 6 views
0

に適用しない: 春のブート1.5.4、春データJPAは、Hibernateバリデーション5、PostgreSQLのJPA、バリデータを休止状態 - 電子メールのバリデータは、私は私のコントローラ</p> <p>スタックにDTOを検証する方法を把握しようとしている文字列

問題は、バリデータが不足していることについて、まだ例外が発生していることです。

手がかりはありますか?

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Email' validating type 'java.lang.String'. Check configuration for 'email' 
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.throwExceptionForNullValidator(ConstraintTree.java:227) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final] 
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorNoUnwrapping(ConstraintTree.java:308) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final] 
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorInstanceForAutomaticUnwrapping(ConstraintTree.java:242) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final] 
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:163) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final] 
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:116) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final] 
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:87) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final] 
    at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:73) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final] 
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:616) ~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final] 

DTO

public class CreateUserDto { 

    @NotEmpty 
    private String name; 

    @Email 
    @NotEmpty 
    private String email; 

    private String password; 

    private String address; 

    private String phone; 

    @NotNull 
    private Role role; 
} 

コントローラ

@PostMapping(value = "/users", consumes = MediaType.APPLICATION_JSON_VALUE) 
@ResponseBody 
@ResponseStatus(HttpStatus.CREATED) 
public UserDto register(@Valid @RequestBody CreateUserDto user) { 
    return userService.register(user); 
} 

答えて

2

私はあなただけBV 1.1をサポートHibernateバリ5.4と豆の検証2.0を使用している疑いがあります。 @Email制約は2.0の仕様に追加されました。それ以前はHV固有の制約のみでした。

おそらくvalidation-api 2.0に依存関係を追加しました。

だから:

  • どちらかあなたはBV 1.1に戻って、あなたは(パッケージorg.hibernate.validator.constraintsから)Hibernateバリ特定@email制約を使用する必要があります。
  • 、またはHVを6.0にアップグレードすることをお勧めします。これは、BV 2.0とjavax.validation @Email制約を維持するためです。
+0

私はHV 6.0.5およびBV 2.0を持っているし、エラーを受け取るおかげ – vlcik

+1

、私は6.0にHVをアップグレードして、それは今働いている: javax.validation.UnexpectedTypeException:HV000030:いいえバリデータが制約のために見つかりませんでした「のjavax .validation.constraints.Email '検証型' java.lang.String '。 –

+0

HV 5.xがクラスパスの周りにないことは確かですか?そうでない場合は、テストケーステンプレート(https://github.com/hibernate/hibernate-test-case-templates/tree/master/validator)で問題を再現し、問題追跡ツールに投稿してください:https:// hibernate .atlassian.net /。ありがとう。 –

関連する問題