场景:
控制层使用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<DeptVO>类型对象的话,那就遍历复制
------解决方案--------------------
这个前面好像讲过的,论坛里已经有这个问题的答案了