好的,我不太确定如何问这个,但我会尝试。我正在使用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);
}
但是,在映射关系时,这些日期解析规则似乎并不适用。那里有mapstruct专家吗?