2013-07-19 3 views
0

Я пытаюсь оптимизировать проверку весны, пропуская как можно больше удаленных баз данных. Вот пример валидатор, что у меня есть:Оптимизация проверки весны формы (короткое замыкание)

import org.springframework.validation.Errors; 
import org.springframework.validation.ValidationUtils; 
import org.springframework.validation.Validator; 

import com.my.Car; 

public class CarValidator implements Validator { 
    @Override 
    public boolean supports(Class<?> c) { 
     return c.equals(Car.class); 
    } 

    @Override 
    public void validate(Object car, Errors result) { 
     ValidationUtils.rejectIfEmptyOrWhitespace(result, "seats", "NotEmpty.car.seats"); 
     ValidationUtils.rejectIfEmptyOrWhitespace(result, "colour", "NotEmpty.car.colour"); 

     // hitting the database here 
    } 

} 

Я не хочу, чтобы получить доступ к базе данных, если некоторые из первых двух валидаций не увенчались успехом. Если сидения или цветовые поля пусты, прекратите обработку валидации и вернитесь к контроллеру. Но если все проверки пройдены, нажмите на db, а затем сделайте все остальное. Как оценка короткого замыкания И на большинстве языков.

ответ

0

Объемного дб вызов с проверкой на количество обнаруженных ошибок:

if (result.getErrorCount() == 0) { 
    //do the DB checks 
} 
Смежные вопросы