У меня есть приложение с несколькими @MappedSuperClasses
.Из одного из них мне нужно написать CSV со столбцами в очень определенном порядке, установленном клиентом.
Раньше было достаточно Entity.class.getDeclaredFields()
для извлечения и записи столбцов в правильном порядке, прежде чем мыбыли суперклассы, но теперь, даже если я использую собственное решение для итерации по полям суперклассов, порядок неправильный, поэтому я прибег к использованию DTO-сущности, которая возвращает правильный порядок при вызове getDeclaredFields()
.
.проблемы возникают, когда я пытаюсь получить значения, присутствующие в связанных сущностях, мы использовали что-то вроде:
Object value = getLineFromField(field, line);
Где getLineFromField()
метод будет выглядеть так:
private Object getLineFromField(Field field, Entity line) {
Object value = null;
try {
value = field.get(line);
} catch (Exception e) {
LOG.info("There is no value. Adding a WhiteSpace to the Column Value");
}
return value;
}
проблема появляется в field.get(line)
, этот метод из библиотеки полей всегда будет возвращать нулевое значение
Есть ли опыт подобного сопоставления?
Просто пытаться избежать написания супер-уродливогоКорпус 100-линейного коммутатора в кодовой базе ...
РЕДАКТИРОВАТЬ для добавления внутреннего исключения, полученного из библиотеки полей: UnsafeObjectFieldAccessorImpl