我使用modelmapper-jooq将jOOQ记录映射到自定义pojos。我们假设我有像
这样的表格 | name | second_name | surname
----------------------------
1 | Mary | Jane | McLeod
----------------------------
2 | John | Henry | Newman
----------------------------
3 | Paul | | Signac
----------------------------
4 | Anna | | Pavlova
所以second_name可以是null
。我的人POJO看起来像:
public class Person {
private String name;
private String secondName;
private String surname;
// assume getters and setters
}
当我将Result<Record>
映射到Collection<Person>
时,此集合中的每个元素都具有等于null
的secondName。当我只映射前两行时,一切正常。如何正确处理它,所以只有当数据库中的相应字段是null
时,secondName字段才是null
?我已经检查过Record实例中的字段是否具有正确的值。我以这种方式配置modelmapper:
ModelMapper modelMapper = new ModelMapper();
modelMapper.getConfiguration().addValueReader(new RecordValueReader());
modelMapper.getConfiguration().setSourceNameTokenizer(NameTokenizers.UNDERSCORE);
我也正在进行映射:
//...
private final Type collectionPersonType = new TypeToken<Collection<Person>>() {}.getType();
//...
Result<Record> result = query.fetch();
return modelMapper.map(result, collectionPersonType);