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

将封闭对象传递给映射方法的Mapstruct

夹谷俊远
2023-03-14

是否有一种方法可以将封闭的对象引用作为参数传递给映射方法?

public class Car {
   public int id;
   public Person driver;
}
public class Person {
   public int carId;
}

PersonTopersondToAfterMapping自定义方法中映射person对象时,我需要一个对包围的car对象的引用。

@Mapper
public abstract class CarMapper {

    public abstract CarDto carToCarDto(Car car);
    public abstract PersonDto personToPersonDto(Person person);
    @AfterMapping
    protected void personToPersonDtoAfterMapping(Person person, @MappingTarget PersonDto dto,  Car enclosedCar) {
        dto.setCarId(enclosedCar.getId())
    }
}

共有1个答案

益炜
2023-03-14

只需使用@context注释即可。你试过了吗?

@Mapper
public abstract class CarMapper {

    public abstract CarDto carToCarDto(Car car);
    public abstract PersonDto personToPersonDto(Person person, @Context Car enclosedCar);
    @AfterMapping
    protected void personToPersonDtoAfterMapping(Person person, @MappingTarget PersonDto dto, @Context Car enclosedCar) {
        dto.setCarId(enclosedCar.getId())
    }
}
 类似资料:
  • 我的RestController中有如下API方法 类如下所示。 在postman中,我传递了一个JSON字符串,如 我得到一个错误说 2021-08-16 18:25:53.953警告4164---[io-8080-exec-10]. w. s. m. s.DefaultHandlerExceptionResolver:已解决[org.springframework.http.converter

  • 问题内容: 一个讨论是关于将空值传递给方法。 它代表了不同的处理方式: 我更喜欢断言方法,但是我不喜欢断言默认情况下处于关闭状态的事实。 该书最后指出: 在大多数编程语言中,没有很好的方法来处理调用者意外传递的null。因为是这种情况,所以合理的方法是默认情况下禁止传递null。 它实际上并没有涉及如何实施此限制? 无论哪种方式,您中的任何人都有强烈的意见。 问题答案: 在这里,使用断言和引发异常

  • 我无法从列表映射器(字符串公司)向对象映射器传递一些公共参数 起初,我使用的是接口而不是抽象类。而且没有@AfterMapping方法。事实上,我不知道如何正确地将其作为String公司@Context传递。有没有@Context和@AfterMapping,或者至少有它,所以我的问题是,当列表映射器getEmployeeFromDTO按顺序调用“item”mapper getEmployeeFr

  • 问题内容: 我在php中有对象,每个对象代表一个“项目”以及与之相关的所有信息。 当用户浏览页面时,这些对象应传递给javascript。理想情况下,镜像相同的结构,因此我可以使用Raphael在我的网站上将每个项目及其信息显示为单独的形状。 但是,如何将对象从php转换为javascript? 问题答案: 您可以将PHP对象转换为数组,然后使用JSON函数对其进行编码。之后,从JavaScrip

  • 问题内容: 我想将关联数组传递给json wcf服务。 因此,在JavaScript中,我与此类似: 在我的wcf服务中,我希望有一个字典: 但是它将地图作为[Object object]发送而不是序列化,因为’map’实际上只是我为其分配属性的对象。 有谁知道我可以正确地序列化它以使其由WCF服务反序列化为Dictionary对象? 问题答案: 默认情况下,WCF不表示为JSON对象- 而是将它

  • 标题可能有点混乱或误导,但我试图比较一个字符串: 然后尝试将其与arraylist中包含的每个字符串进行比较 我得到了一个类,唯一重要的是“搜索”方法。 如果您没有注意到,此方法会接收对象的arraylist作为参数。现在的问题是