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

为什么这个MapStruct生成的类不包括import语句?

经骁
2023-03-14

实体或列表 字段可以映射到long/列表 字段,例如,user.groups可以映射到userdto.groupids:

@Mapper
public abstract class EntityMapper {

    public Long entityToLongId(AbstractBaseEntity entity){
        return entity.getId();
    }

    public abstract List<Long> entityCollectionToLongIdList(Collection<? extends AbstractBaseEntity> entities);
}

然而,生成的实现类不包括AbstractBaseEntity类的任何导入语句,尽管它存在于抽象类中,因此代码不编译:

package ....;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.annotation.Generated;
import org.springframework.stereotype.Component;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2016-07-27T12:11:25+0200",
    comments = "version: 1.0.0.Final, compiler: javac, environment: Java 1.8.0_66 (Oracle Corporation)"
)
@Component
public class EntityMapperImpl extends EntityMapper {

    @Override
    public List<Long> entityCollectionToLongIdList(Collection<? extends ch.unine.tango.model.AbstractBaseEntity> entities) {
        if ( entities == null ) {
            return null;
        }

        List<Long> list = new ArrayList<Long>();
        for ( AbstractBaseEntity abstractBaseEntity : entities ) { // compilation error here !
            list.add( entityToLongId( abstractBaseEntity ) );
        }

        return list;
    }
}

为什么会这样?我做错了吗?怎么解决这个?

public abstract AbstractBaseEntityDTO entityToDTO(AbstractBaseEntity abstractBaseEntity); 

Edit2:在MapStruct的Github上发布了这个问题:https://Github.com/mapstruct/mapstruct/issues/844

共有1个答案

郑胡媚
2023-03-14

当缺少MapStruct的导入时,请注意,您可以手动配置映射器来导入它:

@Mapper( imports = AbstractBaseEntity.class )

在MapStruct文档中搜索“声明导入”

(如72:Mapstruct 1.4.1.final)

 类似资料:
  • 傍晚 我正在玩一个小的swing应用程序,我添加了一个按钮,可以对被按下做出响应。因此,我需要实现ActionListener。我已经添加了这一行: 但是它告诉我它找不到“ActionListener”类。所以过了一会儿,我得到了这个: 我假设awt。*部分意味着它在awt伞下导入所有子包。显然情况并非如此。有人能为我澄清这个问题吗?

  • 我使用mapstruct在两个Calses之间进行映射:CandidateDTO和CandidateDTO。 我在这里的问题是,当映射时,所有DTO字段都为空,因为没有生成映射字段。 请帮忙。

  • 问题内容: 基本上,我想知道将样式表导入到现有样式表中而不是仅添加另一个样式表的优点/目的是什么? 到文件头? 问题答案: 从页面速度的角度来看,几乎不应该使用CSS文件,因为它可以防止样式表被同时下载。例如,如果样式表A包含以下文本: 那么在下载第一个样式表之前,可能不会开始下载第二个样式表。另一方面,如果两个样式表都在HTML主页面的元素中引用,则可以同时下载两个样式表。如果两个样式表总是一起

  • 我目前正在修复别人的Java代码中的一个bug,但我无法解释这个bug。所讨论的代码是下面的if语句: 其中初始化为和函数如下所示: 令我困惑的是,即使被设置为false,代码仍然调用并执行函数。我一直认为这是不应该发生的短路。if语句本身总体上仍然被计算为false,因为只有第一个代码段中的else-block中的代码被执行。 那么,这个if语句为什么会有这样的行为呢?是短路失败,还是我误解了原

  • 唉,很难在谷歌上搜索大括号之类的符号。 我遇到了这个代码: 在里面https://en.cppreference.com/w/cpp/utility/functional/less. 语句、

  • 为什么C 17下< code>bar不是标准的布局类型? 基于CPP reference的描述和一个非常相似的问题,我理解为什么在C 14之前这不是一个标准的布局类型,但是我无法连接CPP Reference的描述项,通过排除所有其他内容,应该是适用于这里的一个:“没有一个基类子对象具有与非联合类型相同的类型,作为第一个非静态数据成员(参见空基优化),并且,递归地, 该数据成员的第一个非静态数据成