orika 转换自定义实体类
orkia 类似 javaEE里的 beanutils 不过功能更加强大,用于po,vo,dto对象的转换。 下面的例子是使用jpa,@query自定义返回的实体,将这个实体转为domain里的vo对象。
1.首先注册,由于获得的query结果是List<Object[]>
1 |
|
每条Object[] 0对应第一个字段 1对应第二个字段 以此类推,所以要注册时指定
1 | mapperFactory.classMap(Object[].class, SoldPercentageVO.class) |
转换代码
1
2
3
4
5
6
7
8
9
10
11
12public PageVO<SoldPercentageVO> getSoldPercentage() {
List<Object[]> soldPercentage = this.shoesDao.getSoldPercentage();
// SoldPercentageVO out = (SoldPercentageVO) ConveterUtil.mapOneTowOne(soldPercentage.get(0), SoldPercentageVO.class);
AssertUtil.AssertNotNull(soldPercentage, ShoeErrorEnum.EMPTY_SHOE);
List<SoldPercentageVO> list = soldPercentage.stream()
.map(data -> (SoldPercentageVO) ConveterUtil.mapOneTowOne(data, SoldPercentageVO.class))
.collect(Collectors.toList());
PageVO<SoldPercentageVO> voList = new PageVO<>();
voList.setTotal(list.size());
voList.setData(list);
return voList;
}