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