0
최대 절전 모드 유효성 검사기를 사용하여 사용자 데이터의 유효성을 검사하는 코드가 있습니다. 사용자가 내 프로그램을 입력 할 수있는 엔티티가 있으며 추상 클래스 인 "AbstractEntity"에서 상속받습니다. 이 코드는 잘 동작했다.fasterxml 클래스 메이트에서 java.lang.ClassCastException이 발생하는 이유
하지만 AbstractEntity는 내가 작성한 또 다른 추상 클래스를 확장했습니다. 이제 인터넷에서 아무것도 찾을 수 없다는 예외가 생깁니다.
public class Bank extends AbstractEntity<Bank>{
public static Bank repo = new Bank();
@NotNull(groups = Insert.class)
private String name; // with getters and setters
protected Bank repo(){
return repo;
}
}
이 AbstractEntity이다 :
public abstract class AbstractEntity<T extends AbstractEntity> extends GenericRepository<T>{
@Min(1)
@NotNull(groups = Update.class)
protected Long id; // with getters and setters
protected abstract T repo();
public String update(){
repo().update(this);
return null;
}
public String delete(){
repo().delete(id);
return null;
}
public String save(){
repo().save(this);
return null;
}
}
이
Set<ConstraintViolation<AbstractEntity>> constraintViolations = validator.validate(abstractEntity, Default.class, Insert.class);
여기 예외를 생성 한 예 엔티티이다 : 여기
예외를 생성하는 코드 라인 AbstractEntity가 확장하는 GenericRepository입니다 :public abstract class GenericRepository<T extends AbstractEntity> extends ApplicationContextAwareBean implements PagingAndSortingRepository<T, Long>{
private Class<T> aClass = (Class<T>) this.getClass();
private String tableName = aClass.getSimpleName().toLowerCase();
private RowMapper<T> rowMapper = new BeanPropertyRowMapper<>(aClass);
private JdbcTemplate jdbcTemplate = (JdbcTemplate) ac.getBean("JdbcTemplate");
// also implements all methods from PagingAndSortingRepository
}
종속성 문제 (최대 절전 모드 - 검증 및 빠른 XML 사이 버전 불일치)처럼 보이는 –
종속성 트리 다음과 같습니다 : org.springframework.boot : 봄 - 부팅 스타터 웹 : 1.1.9.RELEASE 조직 .hibernate : hibernate-validator : 5.0.3.final com.fasterxml : classmate : 1.0.0 또한 최대 절전 모드 유효성 검사기와 클래스 메이트 각각에 대해 최신 버전을 사용해 보았습니다. – raven
내 추측은 예외에 "ResolvedRecursiveType"이 포함되어 있으면 클래스 메이트가 은행 엔티티의이 필드에 문제가있을 수 있습니다. public static Bank repo = new Bank(); – raven