簡體   English   中英

通過映射字段​​名稱添加自動前綴

[英]Add auto prefix by mapping the fields names

我使用Orika Mapper,並具有以下功能:

mapperFactory.classMap(BusinessResource.class, BusinessDto.class)
                .field("content._id", "_id")
                .field("content.uuid", "uuid")
                .field("content.created", "created")
                .field("content.name", "name")
                .field("content.phone", "phone")
                .field("content.fax", "fax")
                .field("content.email", "email")
                .field("content.address", "address")
                .field("content.coordinates", "coordinates")...

為什么我必須用這種方式? 由於BusinessResoruce:

public class BusinessResource extends Resource<Business> {
   private Business content;
   private Link[] links;
}

是否可以通過映射來添加一些自動前綴以添加content. 每種field方法?

先感謝您

更新#1:嘗試使用DefaultFieldMapper並刪除了所有手動映射-沒有成功,但默認情況下映射Links對象沒有任何問題。 該解決方案的主要問題是:

suggestMappedField(String fromProperty, Type<?> fromPropertyType)

接收contentlinksBusinessResource屬性,這就是為什么結果對象為空的原因。

Orika提供了一種方法來提示如何進行自動映射: DefaultFieldMapper

您可以在類映射級別上使用它,甚至可以全局注冊默認字段映射器。

這是一個例子:

DefaultFieldMapper myHint = new DefaultFieldMapper() {
public String suggestMappedField(String fromProperty, Type<?> fromPropertyType) {
  return "content." + fromProperty;
}};

您可以創建默認

factory.registerDefaultFieldMapper(myHint);
// OR factory.classMap() ... .byDefault(myHint);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM