Orika有一組「BuiltinConverters」是否有可能重寫Orika內置的轉換器 - 的XMLGregorianCalendar到java.util.Date?
但映射的XMLGregorianCalendar到java.util.Date不爲我正常工作之一。我發現了以令人滿意的結果映射它的方法,但我找不到使Orika使用它的方法,而不是使用它自己的內置轉換器。我試圖註冊該轉換器在MapperDefinition:
public class MapperDefinition {
private final MapperFactory factory;
private final ConverterFactory converterFactory;
public MapperDefinition() {
factory = new DefaultMapperFactory.Builder().build();
converterFactory = factory.getConverterFactory();
converterFactory.registerConverter(new CustomConverter<XMLGregorianCalendar, Date>() {
@Override
public Date convert(XMLGregorianCalendar source, Type<? extends Date> destinationType) {
LocalDateTime ldt = LocalDateTime.of(source.getYear(), source.getMonth(),
source.getDay(), source.getHour(), source.getMinute(), source.getSecond());
return Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant());
}
}
}
}
但調試表明Orika似乎忽略我的自定義轉換器,仍然使用它自己的內置轉換器。我也無法找到有關重寫它Orika用戶指南的任何信息:
https://orika-mapper.github.io/orika-docs/converters.html
有誰知道這是否可能使Orika用我的映射這兩種類型的方法是什麼?
我假設你的代碼所做的就是它註冊在一個特定工廠的轉換器,但是映射器工廠可能在某些情況下返回不同的工廠。你確定你的應用程序使用你註冊的工廠嗎? –