Получить значение поля от объекта, используя DTO - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть приложение с несколькими @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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...