MapStruct - 映射RealmList关系

时间:2017-10-10 09:23:25

标签: java android realm mapstruct realm-java

好吧,我不太确定怎么问这个,但我会尝试一下。 我正在使用MapStruct将传入的网络对象映射到数据库对象。我使用Realm.io作为我的本地数据存储区。我的一些对象有RealmList<Obj>来存储他们的关系,例如:

public class Client extends RealmObject {
    @PrimaryKey
    private String id = UUID.randomUUID().toString();
    private Date createdAt = new Date();
    private Date updatedAt = new Date();
    private RealmList<Contact> contacts; // <-- this guy
    // constructors and getters/setters
}

我使用moshi-jsonapi作为我的反序列化程序。等效的dto字段是

private String createdAt = new Date();
private String updatedAt = new Date();
private HasMany<Contact> contacts;

问题:让MapStruct正确地将HasMany转换为RealmList。我遇到的一个问题是正确解析关系中的ISO8601日期字段。我可以在对象的属性上做,而不是在它的关系上。这是一个功能正常的Mapper作为例子:

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ClientMapper {
    ClientMapper INSTANCE = Mappers.getMapper(ClientMapper.class);

    @Mappings({
            @Mapping(target = "createdAt", dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"),
            @Mapping(target = "updatedAt", dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
    })
    Client resourceToRealm(biz.kusasa.saleboat.jsonapi.resources.Client client);

    List<Client> resourcesToRealms(List<biz.kusasa.saleboat.jsonapi.resources.Client> clients);
}

然而,在映射关系时,这些日期解析规则似乎不适用。那里有任何地图构建专家吗?

0 个答案:

没有答案