有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java通过映射字段名添加自动前缀

我使用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")...

为什么我要这样使用它?由于商业原因:

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

是否可以通过将content.添加到每个field方法的映射来生成一些自动前缀

先谢谢你

更新#1:尝试使用DefaultFieldMapper并删除了所有手动映射-未成功,但默认情况下,链接对象映射没有任何问题。此解决方案的主要问题是:

suggestMappedField(String fromProperty, Type<?> fromPropertyType)

接收BusinessResource的属性,即contentlinks,这就是结果对象为空的原因


共 (1) 个答案

  1. # 1 楼答案

    Orika提供了一种方法来提示如何进行自动映射:DefaultFieldMapper

    您可以在类映射级别上使用它,甚至可以全局注册默认字段映射器

    以下是一个例子:

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

    您可以创建默认值

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