业务背景:
- 前端传回一个bean对象,某个字段存有多个公司名称,并被逗号分隔开,后端处理成字符串数组,需要按照单个公司名称创建一条数据,
- 某个字段A多选,列表生成多条数据,按照A进行单个创建
- 需要配合detach和save使用,生成的新对象必须考虑hashcode不同(地址)
- 解决 ↓
for (int j = 0; j < auditUnitNames.length; j++) {
String auditUnitIdone = auditUnitIds[j];
String auditUnitNameone = auditUnitNames[j];
String materialistId = materialist.getId();
MaterialList ml = new MaterialList();
materialist.setAuditUnitId(auditUnitIdone);
materialist.setAuditUnitName(auditUnitNameone);
ml = changeEntity(materialist,ml);
if(materialistId != null && !materialistId.equals("")){
commonDao.merge(materialist);
} else {
commonDao.detach(ml);
commonDao.save(ml);
}
materialist.setId(null);
}
private MaterialList changeEntity(MaterialList old, MaterialList young) {
young.setId(old.getAuditId());
.....
.....
.....
return young;
}