好吧,我不太确定怎么问这个,但我会尝试一下。
我正在使用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);
}
然而,在映射关系时,这些日期解析规则似乎不适用。那里有任何地图构建专家吗?