복붙노트

[MONGODB] 어떻게 내 개체의 유효성을 검사 봄 - 데이터 - MongoDB를 얻을 수 있습니까?

MONGODB

어떻게 내 개체의 유효성을 검사 봄 - 데이터 - MongoDB를 얻을 수 있습니까?

나는 봄 - 데이터 - MongoDB를 사용하는 매우 간단한 봄 부팅 응용 프로그램이

내가하고 싶은 모든 내가 저장있어 객체가 이름을 가지고 있어야합니다라는 JSR-303 유효성 검사 규칙을 설정합니다. I는 I는 I 객체 저장이 유효하지만 때 그렇지 않은 것으로되도록 JSR-303는 버전 1.1 스프링 데이터 MongoDB를 가하고 읽었다.

누구나 간단한 예를 설정 것을 알 방법이 작품이 있습니까?

내 사용자 POJO는 같다

public class User {

    @Id
    private String id;

    @NotNull(message = "User Name is compulsory")
    private String userName;
    private String password;

    public User() {}

    public String getId() {
      return id;
    }
    public void setId(String id) {
      this.id = id;
    }

    public String getUserName() {
      return userName;
    }
    public void setUserName(String userName) {
      this.userName = userName;
    }


    public String getPassword() {
      return password;
    }
    public void setPassword(String password) {
      this.password = PasswordAuthService.hash(password);
    }
}

어디 선가 보았다 내가처럼 보이도록, 모든 구성이 포함되어 내 응용 프로그램 클래스 (업데이트 시도 있도록 컨텍스트에서 만든 검증이있는 경우에 검증에만 차기

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

    @Bean
    public Validator getValidator() {
      LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
      return validator;
    }

    public static void main(String[] args) {
      SpringApplication.run(Application.class, args);
    }

}

해결법

  1. ==============================

    1.당신은 예를 들어, 클래스 패스에 JSR-303 검증이 있는지 먼저 확인하십시오

    당신은 예를 들어, 클래스 패스에 JSR-303 검증이 있는지 먼저 확인하십시오

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.2.0.Final</version>
    </dependency>
    

    당신이 자바 설정을 사용하는 경우, 이동하는 방법은 두 콩을 만드는 것입니다 :

    @Bean
    public ValidatingMongoEventListener validatingMongoEventListener() {
        return new ValidatingMongoEventListener(validator());
    }
    
    @Bean
    public LocalValidatorFactoryBean validator() {
        return new LocalValidatorFactoryBean();
    }
    

    자보세요! 검증은 지금 노력하고 있습니다.

  2. ==============================

    2.문맥에 검사기를 추가하면 좋은 첫 번째 단계입니다,하지만 난 당신이 그것을 요구하지 않는 한 아무것도와 상호 작용하는 것입니다 생각하지 않습니다. 봄 데이터 사람은 아마 확실히 말할 수 있습니다하지만 난 당신이 명시 적으로뿐만 아니라 일부 청취자를 선언 할 필요가 있다고 생각합니다. 이 기능에는 오래 된 블로그입니다,하지만 당신은 쉽게 내가 할 수있는 인터넷 검색하여 해당를 찾을 수 있습니다.

    문맥에 검사기를 추가하면 좋은 첫 번째 단계입니다,하지만 난 당신이 그것을 요구하지 않는 한 아무것도와 상호 작용하는 것입니다 생각하지 않습니다. 봄 데이터 사람은 아마 확실히 말할 수 있습니다하지만 난 당신이 명시 적으로뿐만 아니라 일부 청취자를 선언 할 필요가 있다고 생각합니다. 이 기능에는 오래 된 블로그입니다,하지만 당신은 쉽게 내가 할 수있는 인터넷 검색하여 해당를 찾을 수 있습니다.

    당신이 봄 부팅에 유용한 자동 구성 기능이있을 것입니다 생각한다면, GitHub의에 대한 자세한 제안을 주시기 바랍니다.

  3. ==============================

    3.내가 추가 할 경우 발견

    내가 추가 할 경우 발견

    public User addUser(@RequestBody  @Valid User newUser, 
                       BindingResult bindingResult) throws Exception {
    
      if (bindingResult.hasErrors()) {
        throw new Exception("Validation Error");
      }
    

    난 여전히 차단에 유효하지 않은 데이터로 모델을 업데이트 할 내 코드의 다른 부분을 validatingMongoEventListener을 시도하고 설치해야하지만 내 컨트롤러에이 내 규칙에 대한 들어오는 JSON의 유효성을 검사합니다.

  4. from https://stackoverflow.com/questions/22568962/how-to-i-get-spring-data-mongodb-to-validate-my-objects by cc-by-sa and MIT license