当前位置:网站首页>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);
}
}
边栏推荐
- 混币器Tornado遭制裁 对DeFi市场意味着什么?
- DOM-DOM树,一个DOM树有三种类型的节点
- 年薪30W,BAT抢着要,懂面试技巧的测试人究竟多吃香?
- mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
- Detailed explanation of common methods of filtering matrix (array) elements in Matlab
- 八.数据的存储
- 对加密世界的经济误解:现金是储蓄?稀缺性创造价值?
- 软件测试面试题:测试用例与测试脚本?
- MySQL八股文背诵版(续)
- qtcreator调试webkit
猜你喜欢
ARM开发(四)新手小白如何阅读芯片手册,裸机驱动开发步骤以及纯汇编实现点灯,汇编结合c点灯,c实现点灯
117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
代码 Revert 后再次 Merge 会丢失的问题,已解决
英伟达 GPU 架构简史
八.数据的存储
TRCX: doping process analysis
MySQL - an SQL in MySQL is how to be performed?
2022英伟达显卡排名天梯图
【Unity入门计划】Unity2D动画(1)-动画系统的组成及功能的使用
OpenCV founder: Open source must not be completely free!
随机推荐
基于FPGA状态机的自动售货机功能实现
【Unity入门计划】Unity2D动画(1)-动画系统的组成及功能的使用
《如何戒掉坏习惯》读书笔记
通过微透镜阵列的传播
ROS源代码阅读(1)
Ninjutsu_v3_08_2020-安全渗透系统安装
备战“金九银十”,软件测试功能 / 数据库 /linux/ 接口 / 自动化 / 测试开发面试真题解析
A surviving spouse of the opposite sex within large turn paragraph, what for
思念家乡的月亮
项目构建工具-Gradle入门
行业的思考
Fatal error in launcher: Unable to create process using xxx --logdir logs(tensorboard使用)
架构篇(二)架构的复杂度来源
sql 使用到where和groupby时建立索引结果为啥是这样,原理是什么?
基于 HPSO 与多核 LSSVM 的网络入侵检测
How to solve the problem of Tomcat booting and crashing
漏洞管理计划的未来趋势
CC0 与商业 IP:哪种模式更适合 NFT?
Inter-process communication method (2) Named pipe
TRCX:掺杂过程分析