PostalCode Spring验证

时间:2016-10-12 08:48:29

标签: java spring validation

我是Spring Framework的新手,我可能需要一些帮助。 我正在尝试验证城市的数据。其中一个属性是邮政编码。但是,此 postalCode 在该城市所在的国家/地区内必须是唯一的。

到目前为止,我已经验证了此字段是否为空,但是如果它超出了有限字符,则我没有验证 postalCode

到目前为止,我正在使用 cityRepository 查找一个城市并获取其 postalCode 然后我正在尝试检查它是否不等于任何 postalCode 在国家/地区列表中。

这是我的代码:

 // City postal code validation
    if (StringUtils.isEmpty(city.getPostalCode())) {
        errors.reject("postalCode", "required");
    } else if (city.getPostalCode().length() > ValidatorConfig.STRING_LENGTH) {
        errors.reject("postalCode", "Allowed length is exceeded");
    } else if (cityRepository.findOne(QCity.city.postalCode.eq(city.getPostalCode())) &&
        (countryRepository.findAll(QCountry.country.cities.contains(city.getPostalCode())))) {
        errors.reject("postalCode", "Postal Code exists in this country");
    }

任何人都可以帮我找到这个问题的主角吗? 先感谢您。

1 个答案:

答案 0 :(得分:0)

为什么要测试邮政编码在cityRepository中是否唯一?我认为您应该信任cityRepository并假设其中没有错误的数据。 您应该检查的是城市存储库中是否存在postalCode:

// City postal code validation
    if (StringUtils.isEmpty(city.getPostalCode())) {
        errors.reject("postalCode", "required");
    } else if (city.getPostalCode().length() > ValidatorConfig.STRING_LENGTH) {
        errors.reject("postalCode", "Allowed length is exceeded");
    } else if (!cityRepository.findOne(QCity.city.postalCode.eq(city.getPostalCode()))) {
        errors.reject("postalCode", "No postal code found");
    }

无论如何,我建议你改进你的问题,因为它不是很清楚是什么问题。