我在页面上有一个公司类型的checkbox,现在是这样的,我在加载这个checkbox页面的时候会从后台传入我以前选过的公司类型,然后问题是:比如我现在加载页面的时候传入的是2,3,4,6这4个类型,然后我修改以后选中的是1,3,7这3个类型,由于类型变了,我现在想把本来有,但是现在没选中的2,4,6这3个类型在数据库中删除,然后添加1,7这两天数据,但是在JAVA中要怎么进行判断呢
String mrcType = entity.getMrcType();
List<RelatedCompanyType> companyTypes = relatedCompanyTypeService
.selectRelatedCompanyTypeByCompCode(entity.getMrcCode());
List<RelatedCompanyType> needDelRelatedCompanyType = new ArrayList<RelatedCompanyType>();
if (StringUtils.isNotBlank(mrcType)) {
StringBuffer hasExitTypeBuf = new StringBuffer();
for (RelatedCompanyType relatedCompanyType : companyTypes) {
if (!mrcType.contains(relatedCompanyType.getCompTypeCode())) {
needDelRelatedCompanyType.add(relatedCompanyType);
companyTypes.remove(relatedCompanyType);
}
hasExitTypeBuf.append(relatedCompanyType.getCompTypeCode());
}
String[] mrcTypes = mrcType.split(",");
for (String type : mrcTypes) {
if (!hasExitTypeBuf.toString().contains(type)) {
RelatedCompanyType relatedCompanyType = new RelatedCompanyType();
companyTypes.add(relatedCompanyType);
}
}
entity.setCompanyTypes(companyTypes);
} else {
needDelRelatedCompanyType = companyTypes;
}
已经实现了
如果一定要用Java实现,……那就手写呗……如果觉得不优雅可以导一个Guava包,Sets类里有求两个Set差集的静态方法
其实,这种业务反正也要全量更新,好像根本不需要关注类型具体的变化?
你这三个类型值是怎么存的呢,直接用页面当前选择的值,修改原来的值就行了啊,你这就是一个修改操作吧 。