当前位置:网站首页>Entity to Vo conversion
Entity to Vo conversion
2022-08-11 02:41:00 【Don't bully the young, middle-aged, old and poor】
entity —》 VO
1、pom.xml 导入依赖
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.2.0.CR1</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.2.0.CR1</version>
<scope>provided</scope>
</dependency>
2、自定义接口
package com.southwind.mapper;
import com.southwind.entity.Category;
import com.southwind.entity.Product;
import com.southwind.vo.OrderVO;
import com.southwind.vo.ProductVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.Named;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface ProductMapper {
ProductMapper mapper = Mappers.getMapper(ProductMapper.class);
@Mappings({
@Mapping(source = "productId",target = "id"),
@Mapping(source = "productName",target = "name"),
@Mapping(source = "productPrice",target = "price"),
@Mapping(source = "productStatus",target = "status",qualifiedByName = "convertStatus")
})
ProductVO pojo2vo(Product product);
@Named("convertStatus")
default Boolean convertStatus(Integer status){
if(status == 1)return true;
return false;
}
List<ProductVO> list2vo(List<Product> list);
@Mappings({
@Mapping(source = "product.productName",target = "product"),
@Mapping(source = "category.categoryName",target = "category")
})
OrderVO createOrder(Product product, Category category);
}
3、测试类
package com.southwind.mapper;
import com.southwind.entity.Category;
import com.southwind.entity.Product;
import com.southwind.vo.OrderVO;
import com.southwind.vo.ProductVO;
import org.junit.Test;
import org.springframework.beans.BeanUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
public class VOTest {
@Test
public void test() {
Product product = new Product(1,"电脑", new BigDecimal(6000),1);
ProductVO productVO = ProductMapper.mapper.pojo2vo(product);
System.out.println(productVO);
}
@Test
public void list(){
List<Product> list = new ArrayList<>();
for (int i = 0; i < 3; i++) {
list.add(new Product(i,"电脑"+i,new BigDecimal(6000),1));
}
List<ProductVO> productVOS = ProductMapper.mapper.list2vo(list);
for (ProductVO productVO : productVOS) {
System.out.println(productVO);
}
}
@Test
public void order(){
Product product = new Product(1, "电脑", new BigDecimal(6000),1);
Category category = new Category("电子产品");
OrderVO order = ProductMapper.mapper.createOrder(product, category);
System.out.println(order);
}
}
边栏推荐
- MySQL的主从复制+读写分离+分库分表,看这一篇文章就够了
- Section 4-6 of the first week of the second lesson: Appreciation of medical prognosis cases + homework analysis
- ROS源代码阅读(1)
- ①CAS SSO单点登录框架源码深度分析
- 思念家乡的月亮
- 报错处理:org.xml.sax.SAXParseException: 不允许有匹配 “[xX][mM][lL]“ 的处理指令目标
- 多线程之ThreadPoolExecutor
- shell [stdin/stdout/stderr][重定向]
- CSAPP Data Lab
- 行业的思考
猜你喜欢

学军中学推理社2017届招新试题

redis学习五redis的持久化RDB,fork,copyonwrite,AOF,RDB&AOF混合使用

JVM类加载机制

从键入网址到网页显示的详细过程

测试3年,开口就要25k?面试完最多给15k...

《如何戒掉坏习惯》读书笔记

117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案

【Unity入门计划】Unity2D动画(1)-动画系统的组成及功能的使用
![报错处理:org.xml.sax.SAXParseException: 不允许有匹配 “[xX][mM][lL]“ 的处理指令目标](/img/35/650c92ac4c5fc2d5826f3216a09e65.png)
报错处理:org.xml.sax.SAXParseException: 不允许有匹配 “[xX][mM][lL]“ 的处理指令目标

AI+医疗:使用神经网络进行医学影像识别分析
随机推荐
软件测试面试题:性能测试工作?
2022茶艺师(中级)考试试题及模拟考试
花甲的思考
GBJ3510-ASEMI家电电源用整流桥GBJ3510
关于地图GIS的一次实践整理(下) Redis的GIS实践
Detailed explanation of new features of ES advanced array function syntax
Vulnhub靶机:GEMINI INC_ 2
gRPC闭包调度器
今天聊聊接口幂等性校验
【idea 报错】 无效的目标发行版:17 的解决参考
Some work experience after joining the digital ic design
惨遭面试官吊打高并发系统设计,回来学习 2400 小时后成功复仇
YTU 2411: 谁去参加竞赛?【简单循环】
多线程之ThreadPoolExecutor
redis学习五redis的持久化RDB,fork,copyonwrite,AOF,RDB&AOF混合使用
Section 4-6 of the first week of the second lesson: Appreciation of medical prognosis cases + homework analysis
Detailed explanation of common methods of filtering matrix (array) elements in Matlab
Inter-process communication method (2) Named pipe
【PHP】入门知识
OptiFDTD应用:用于光纤入波导耦合的硅纳米锥仿真