时间:2016年07月26日 | 作者 : admin | 分类 : Java代码 | 浏览: 762次 | 评论 0 人
第一步
package com.lightsaber.distri.product.web.product; import java.lang.reflect.Field; public class ObjectModel<T> { //将source的字段的有的值增加到target上 //source是页面传过来的 target是从数据库取的 public T copyObject(T source,T target){ try { Class sourceClass=source.getClass(); Class sourceSuperClass=sourceClass.getSuperclass(); Field[] sourceFields = sourceClass.getDeclaredFields(); Field[] sourceSuperFields = sourceSuperClass.getDeclaredFields(); Class targetClass=target.getClass(); Class targetSuperClass=targetClass.getSuperclass(); Field[] targetFields = targetClass.getDeclaredFields(); Field[] targetSuperFields = targetSuperClass.getDeclaredFields(); for(Field ft:targetFields){ ft.setAccessible(true); if(!ft.getName().equals("serialVersionUID")&&!ft.getName().equals("ID")&&!ft.getName().equals("VERSION")){ for(Field fs:sourceFields){ fs.setAccessible(true); if(fs.getName().equals(ft.getName())&& fs.get(source) !=null &&!"".equals(fs.get(source))){ ft.set(target, fs.get(source)); } } } } for(Field ft:targetSuperFields){ ft.setAccessible(true); if(!ft.getName().equals("serialVersionUID")&&!ft.getName().equals("ID")&&!ft.getName().equals("VERSION")){ for(Field fs:sourceSuperFields){ fs.setAccessible(true); if(fs.getName().equals(ft.getName()) && fs.get(source) !=null &&!"".equals(fs.get(source))){ ft.set(target, fs.get(source)); } } } } } catch (Exception e) { e.printStackTrace(); } return target; }; }
第二步 使用的时候先查一下
/** 增加 和 修改 */ public Product update(Product product) { Product p = productDao.findOne(product.getId()); p = new ObjectModel<Product>().copyObject(product, p); p = productDao.save(p); return p; }
额 本文暂时没人评论 来添加一个吧
发表评论