当前位置: 代码迷 >> J2SE >> 在list中的po对象转换成vo转换的有关问题
  详细解决方案

在list中的po对象转换成vo转换的有关问题

热度:6   发布时间:2016-04-23 20:35:13.0
在list中的po对象转换成vo转换的问题
场景:
控制层使用vo对象,数据层使用po对象,业务层负责将po对象转换成vo对象传递给控制层
vo和po对象之间转换可以用BeanUtils.copyProperties(vo, po);方法
如果数据层传递的是要给集合对象,譬如List集合,我是这么写的

List<DeptVO> voList=new ArrayList<DeptVO>();
List<DetPO> poList=dao.list();
DepartmentVO vo=null;
for(DeptPO po:poList){
    vo=new DepartmentVO();
    BeanUtils.copyProperties(vo, po);
    voList.add(vo);
}

结果符合需求,但是每个业务模块都使用这种写法,感觉效率太低了,
各位有没有好的解决方案或思路,能给介绍下,万分感谢
------解决方案--------------------
 兄弟,你再VO装去转呗,直接写在实体类中,进行转换就ok了,

1、在VO对象得到PO, 然后一个个set进去。

2、再在VO中 写个如:

  
/**
 * 取得所有对应的bo列表
 * 
 */
public List getAllPO() {
List boList = new ArrayList();

boList.add(getBO());  // 这里getBO就是你先前set的对象。

return boList;
}

------解决方案--------------------
上面少写一句

try{
            List<DeptVO> voList=new ArrayList<DeptVO>();
              Object po=invocation.proceed();  //调用目标方法
              BeanUtils.copyProperties(vo, po); 
       }
  return  voList;//将你转换的后的对象返回出去 

------解决方案--------------------
引用:
感谢您的帮助,
有个问题是,如何将一个List<po>集合对象的复制给List<vo>集合对象,BeanUtils好像不支持

如果你每个业务层都是返回List<DeptVO>类型对象的话,那就遍历复制
------解决方案--------------------
引用:
Quote: 引用:


感谢您的帮助,
有个问题是,如何将一个List<po>集合对象的复制给List<vo>集合对象,BeanUtils好像不支持

如果你每个业务层都是返回List<DeptVO>类型对象的话,那就遍历复制
这个前面好像讲过的,论坛里已经有这个问题的答案了
  相关解决方案