当前位置: 首页 > 知识库问答 >
问题:

Orika映射不起作用

酆景辉
2023-03-14

我已经定义了对象HomeContentDTO和SubscriberUpsertDTO的映射

public class HomeContentDTO implements Serializable {

private static final long serialVersionUID = 1717544153530572470L;

private String fileName;
private String subscriberName;
private String subscriberEmail;
private String subscriberCompanyName;

public String getFileName() {
    return fileName;
}

public void setFileName(String fileName) {
    this.fileName = fileName;
}

public String getSubscriberName() {
    return subscriberName;
}

public void setSubscriberName(String subscriberName) {
    this.subscriberName = subscriberName;
}

public String getSubscriberEmail() {
    return subscriberEmail;
}

public void setSubscriberEmail(String subscriberEmail) {
    this.subscriberEmail = subscriberEmail;
}

public String getSubscriberCompanyName() {
    return subscriberCompanyName;
}

public void setSubscriberCompanyName(String subscriberCompanyName) {
    this.subscriberCompanyName = subscriberCompanyName;
}
}


public class SubscriberUpsertDTO implements Serializable{

    private static final long serialVersionUID = -6899387128123861532L;
    private Integer id;
    private String name;
    private String email;
    private String companyName;

    public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getCompanyName() {
    return companyName;
}

public void setCompanyName(String companyName) {
    this.companyName = companyName;
}

public boolean isActive() {
    return active;
}

public void setActive(boolean active) {
    this.active = active;
}
}

下面是这两个对象的映射配置

public class HomeMapperRegister {
    @MapperRegister
    public void register(MapperFactory mapperFactory) {
         mapperFactory.classMap(HomeContentDTO.class, SubscriberUpsertDTO.class)
            .fieldAToB("subscriberName", "name")
            .fieldAToB("subscriberEmail", "email")
            .fieldAToB("subscriberCompanyName", "companyName")
            .register();
    }
}

HomeContentDTO中的所有映射值都没有复制到SubscriberUpsertDTO。有人知道原因吗?

SubscriberUpsertDTO subscriberUpsertDTO =     mapperFactory.getMapper().map(homeContentDTO, SubscriberUpsertDTO.class);

共有1个答案

宰父衡
2023-03-14
class HomeMapperRegister extends ConfigurableMapper {

    @Override
    public void configure(MapperFactory mapperFactory) {
        mapperFactory.classMap(HomeContentDTO.class, SubscriberUpsertDTO.class)
                .fieldAToB("subscriberName", "name")
                .fieldAToB("subscriberEmail", "email")
                .fieldAToB("subscriberCompanyName", "companyName")
                .register();
    }
}

扩展了从ConfigurableMapper和覆盖配置函数映射。

 类似资料:
  • 这些类映射不能用于双向映射。所以,我使用了两个不同的映射。但是使用两个不同的具有双向映射的类映射使上述方法都不起作用。我正在寻找一种方法来使用一个classmap只用于单向映射,这样我就可以使用上面的两个。 任何帮助都将不胜感激。谢了。

  • 这很好,Orika自动确定bean上的属性名,并在expr中给我。但它没有告诉我类型。它也没有告诉我我试图映射到什么。在本例中,我只需假设目标是ResultSet。 如何知道要将数据放入的expr的类型?如果是,我将进行内联绑定调用,并告诉Orika使用。如果是时间戳,我将进行内联绑定调用并告诉Orika使用 我如何知道我试图从映射到,而不是从映射到?

  • 问题内容: 我正在尝试为各个字段使用不同的分析器设置ElasticSearch索引。但是,我似乎找不到一种设置特定于字段的分析器的方法。这是我创建(测试)索引的方法: 如果我正确阅读了文档,则应创建类型为“ tweet”的索引“ twitter”,并且应通过雪球词根分析器分析“ message”字段的内容。为了对此进行测试,我尝试了以下查询: 如果我没记错的话,那应该会受到打击,因为战斗是战斗的源

  • 在代码中使用XSLT 2.0的字符映射功能时,我遇到了以下错误。 名称空间中的元素“样式表”http://www.w3.org/1999/XSL/Transform'命名空间中的子元素'character map'无效'http://www.w3.org/1999/XSL/Transform“是的 这是我的XSLT声明 请提供有关如何在XSLT中使用字符映射的帮助。

  • 我有一个对象带有字段

  • 当我访问localhost:8080/home-我得到: 当我访问localhost:8080/或localhost:8080/index时,看起来一切正常。 为什么一条路行得通,而另一条行不通? 还有一件事让我困惑:localhost:8080/homepage。html-返回我的主视图。 所以我的项目在这里:https://github.com/IRus/jMusic 我的web.xml se