Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

हम स्प्रिंग बूट में किसी भी सत्यापन का उपयोग कैसे कर सकते हैं?

इसके लिए आपको एक कस्टम एनोटेशन लिखना होगा और कक्षा में उपयोग करना होगा

@AtLeastOneNotEmpty(fields = {"name", "phone"})
public class User{

कस्टम एनोटेशन कार्यान्वयन

@Constraint(validatedBy = AtLeastOneNotEmptyValidator.class)
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface AtLeastOneNotEmpty {

  String message() default "At least one cannot be null";

  String[] fields();

  Class<?>[] groups() default {};

  Class<? extends Payload>[] payload() default {};
}

और कस्टम एनोटेशन का सत्यापनकर्ता

public class AtLeastOneNotEmptyValidator
    implements ConstraintValidator<AtLeastOneNotEmpty, Object> {

  private String[] fields;

  public void initialize(AtLeastOneNotEmpty constraintAnnotation) {
    this.fields = constraintAnnotation.fields();
  }

  public boolean isValid(Object value, ConstraintValidatorContext context) {

    List<String> fieldValues = new ArrayList<String>();

    for (String field : fields) {
      Object propertyValue = new BeanWrapperImpl(value).getPropertyValue(field);
      if (ObjectUtils.isEmpty(propertyValue)) {
        fieldValues.add(null);
      } else {
        fieldValues.add(propertyValue.toString());
      }
    }
    return fieldValues.stream().anyMatch(fieldValue -> fieldValue!= null);
  }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL क्वेरी जो दो फ़ील्ड से मेल खाती है और एक और फ़ील्ड समान है

  2. PHP MySQL से चयन करें जहां दिनांक फ़ील्ड भविष्य में 7 दिन है

  3. PHP+MySQL में लोकप्रिय शब्द प्राप्त करें

  4. पिछले 90 दिनों के लॉगिन के आधार पर सक्रिय उपयोगकर्ताओं की गणना करें

  5. क्या MySQL में अनुक्रमित दृश्य होना संभव है?