Я работаю в весеннем периодическом приложении. Мне нужно получить список элементов из ItemWriter
объекта и установить его каждый список в соответствующий объект домена и сохранить его в БД Mongo. Но когда я пытаюсь получить список из объекта профиля от автора, он содержит все данные в требуемом списке. Когда я пытаюсь присвоить его соответствующему объекту домена, я получаю сообщение об ошибке. Я не могу получить какие-либо данные из списка внутри profileDTO
.
Я пытался несколькими способами получить данные списка и установить их в соответствующие объекты домена. Но каждый раз, когда он присваивается классу домена, исключение составляет java.lang.ClassCastException: org.springframework.util.LinkedCaseInsensitiveMap
Я также прошел по ссылке , но не получил ее. Я использую весеннюю версию 5.1.2.
Пожалуйста, помогите мне решить эту проблему.
ниже приведен фрагмент кода
ProfileDTO
, имеющий список DueDiligenceDTO
, который передается в ItemWriter
. Которые содержат как данные profileDTO, так и данные DueDiligenceDTO. Нет нулевых указателей.
@Data
Builder
@AllArgsConstructor
@Document(value= "Profile")
public class ProfileDTO {
private long profileId;
private LocalDateTime reviewDate;
private int tierLevelNumber;
private List<DueDiligenceDTO> dueDiligences;
}
DueDiligenceDTO
@Data
@NoArgsConstructor
public class DueDiligenceDto{
private String categoryCode;
}
А у писателя класс, у меня есть:
public class ProfileWriter implements ItemWriter<ProfileDTO> {
@Override
public void write(List<? extends ProfileDTO> profile) throws Exception {
riskProfile.stream().forEach(risk -> setProfile(risk));
}
private void setProfile(ProfileDTO prop) {
List<DueDiligence> DueDiligences = new ArrayList<>();
for(DueDiligenceDTO diligenceDetails : prop.getDueDiligences()) {
List<DueDiligenceDetailDTO> dueDiligenceDtlList= diligenceDetails.getDueDiligenceDetails();
if(null!=dueDiligenceDtlList && !dueDiligenceDtlList.isEmpty()) {
for(DueDiligenceDetailDTO detailDTO:dueDiligenceDtlList) {
// then, need to set detailDTO into separate domain object and
// set diligenceDetails into separate domain object.
}
}
}
}
}
В for(DueDiligenceDTO diligenceDetails : prop.getDueDiligences())
->
Ошибка трассировки стека:
java.lang.ClassCastException: org.springframework.util.LinkedCaseInsensitiveMap cannot be cast to com.data.profile.dto.DueDiligenceDetailDTO
Пожалуйста, помогите мне, как решить эту проблему.