【问题标题】:map DTO to Backend Entities将 DTO 映射到后端实体
【发布时间】:2021-12-31 20:09:23
【问题描述】:

我正在开发一个休息应用程序,其中 DB 中的数据加载到实体中,然后对数据进行一些转换,同时填充相应的 DTO,然后返回给消费者。

根据消费者和其他一些参数,应该将不同的数据子集返回给用户,例如,如果用户正在查询他的个人信息,则返回的详细信息级别将与经理查询时不同他的员工的数据等......

我的问题: 是否有任何框架来处理此自定义映射(即基于 xml 的文件,该文件确定应在哪种条件下将哪个 BE 实体中的哪个字段映射到哪个 DTO?而不是在每种情况下制作自定义代码?提前致谢。

我正在使用弹簧休息 + 休眠

【问题讨论】:

    标签: java spring hibernate mapping dto


    【解决方案1】:

    关于 XML 文件映射,我不知道。但我发现真正有用且非常可定制的是MapStruct。这是一个非常有用的库,文档和示例都非常好。

    一个简单的例子:

    @Mapper 
    public interface CarMapper {
     
        CarMapper INSTANCE = Mappers.getMapper( CarMapper.class ); 
     
        @Mapping(source = "numberOfSeats", target = "seatCount") // Here is one of the functionalities that you wanted...
        CarDto carToCarDto(Car car); 
    }
    

    还有 IDE 和 Lombok 支持。

    【讨论】:

    • 谢谢...但是我需要实现carToCarDto 方法-如果我有多个映射,还有其他方法-...对吗?
    • 不,MapStruct 会为你实现它们,你只需要拥有 getter 和 setter。检查我在答案中链接的示例和网站。它完全符合您的需要
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    相关资源
    最近更新 更多