我正在使用 modelmapper-jooq 将 jOOQ 记录映射到自定义 pojo。假设我有这样的表
| 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>
时,此集合中的每个元素的 secondName 都相等null
。当我只映射前两行时,一切正常。如何正确处理,所以 secondName 字段null
仅在数据库中的对应字段为时null
?我检查了 Record 实例中的字段是否具有正确的值。我以这种方式配置模型映射器:
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);