1

我正在使用 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);
4

0 回答 0