场景
我们通常在插入一张表的时候会关联另外一张表,所以会同事插入两张表,对应的是不同的两个实体类,不同的service,一个一个set过于麻烦,他们存在一定相同的属性,利用
BeanUtils.copyProperties(gyggZd, gyzd);
第一个是你得到值的对象,第二个是你要赋过去的对象
他们对象的属性如下
得到的值gyggZd对象
public class GyggZd {
/**
* 公告宗地GUID
**/
private String gyggZdGuid;
/**
* '供应公告GUID'
**/
private String gyggGuid;
/**
* '宗地GUID'
**/
private String zdGuid;
/**
* '宗地编号'
**/
private String zdBh;
/**
* '面积'
**/
private BigDecimal mj;
}
赋值的gyzd对象
public class TdGyzd {
/**
* 宗地主键
*/
private String zdGuid;
/**
* 行政区划
*/
private String xzqDm;
/**
* 乡镇名称
*/
private String xzMc;
/**
* 宗地编号
*/
private String zdBh;
/**
* 面积
*/
private BigDecimal mj;
}
他们存在一部分相同一部分不相同,利用 BeanUtils.copyProperties 可以将相同的属性,并且不为null的属性值copy过去。
具体代码实现
......
if (StringUtils.isEmpty(gyggZd.getGyggGuid())) {
/*新增宗地*/
gyggZd.setGyggGuid(UUID.randomUUID().toString());
/*添加外键表内容*/
TdGyzd gyzd = new TdGyzd();
BeanUtils.copyProperties(gyggZd, gyzd);
tdGyzdService.saveGyzd(gyzd);
j = gyggZdDao.insert(gyggZd);
}
......