使用自定义验证器检查springboot中唯一约束的逻辑


package com.assessment.crud.validate;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
public class AddressValidator implements ConstraintValidator<AddressValid,String> {
@Override
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
// logic
return false;
}
}

在上面的春季启动代码中,我想编写逻辑来检查地址字段是否唯一。

下面的代码应该可以工作

@Autowired
private AddressRepository addressRepository;
@Override
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
if (addressRepository.findByAddress(s).isPresent()) {
return false; // address already exists
}
return true;
}

Below is the AddressRepository Code
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface AddressRepository extends CrudRepository<Address, Long> {
Optional<Address> findByAddress(String address);
}

最新更新