我正在尝试将我的Spring-boot Web应用程序从2.0.2迁移到2.1.4,但是当我尝试使用验证器找到一个元素时,我遇到了一个问题,休眠抛出异常
override func viewDidAppear(_ animated: Bool) {
if UserDefaults.standard.float(forKey: "isLoggedIn") == 1 {
self.performSegue(withIdentifier: "studentSegue", sender: self)
}
if UserDefaults.standard.float(forKey: "isLoggedIn") == 2 {
self.performSegue(withIdentifier: "lecturerSegue", sender: self)
}
else{
return
}
}
SpringData.java
HV000243: Constraint
validators.annotations.StringaData references constraint validator type
validators.impl.DateValidator, but this validator is defined for constraint type
validators.annotations.StringaData.
和DateValidator.java
@Target({ElementType.FIELD })
@Retention(RUNTIME)
@Constraint(validatedBy = DateValidator.class)
public @interface StringaData {
String message() default MessagesKeys.MUST_BE_DATE;
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
阅读了文档
这是我的应用验证器的课程
public class DateValidator implements ConstraintValidator<StringaData, String> {
@Override
public boolean isValid(String str, ConstraintValidatorContext context) {
if( str != null && ValidationUtilsCustom.isNotEmptyOrWhitespace(str))
return ValidationUtilsCustom.isStringDate(str);
return true;
}
}
我在做什么错了?
这是我的Web应用程序中依赖项的完整列表
public class elementDTO implements Serializable {
private BigDecimal Id; // Id or Primary Key
@StringaData
private String dataStr;
@StringaData
private String field2Str;
//getter and setter
}
答案 0 :(得分:2)
哼。真的很奇怪。
您确定您的类路径中没有StringaData
的2种不同实现吗?因为确实看起来您有两个具有相同名称的不同类,并且这会造成混乱。
这也可能是类加载器的问题,但是通常,在典型的Spring设置中没有这些。