使用DTO从实体获取字段值

时间:2018-12-04 09:34:00

标签: java field

我有一个包含多个@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

0 个答案:

没有答案