我是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");
}
任何人都可以帮我找到这个问题的主角吗? 先感谢您。
答案 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");
}
无论如何,我建议你改进你的问题,因为它不是很清楚是什么问题。