public void test(){
AbstractDMO theDMO = (AbstractDMO)DMOProxy.getDMO(AbstractDMO.class);
EntityStateDMO stateDMO = (EntityStateDMO)DMOProxy.getDMO(EntityStateDMO.class);
AbstractDMO otherDMO = (AbstractDMO)this.syncer.getDMO(AbstractDMO.class);
List<Department> equips = theDMO.getObjects("FROM Department");
List<Department> otherEquips = otherDMO.getObjects("FROM Department");
List<Department> tops = new ArrayList();
Map cache = new HashMap();
for (Department department : equips) {
//为原数据库的每一个Department,创建一个集合,以department为key,new ArrayList()为value以用来存子集
cache.put(department, new ArrayList());
}
Iterator it = cache.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry)it.next();
//得到key
Department obj = (Department)entry.getKey();
if (obj.getParent() != null) {
//如果父不为空的话,根据父来得到子集
List list = (List)cache.get(obj.getParent());
System.out.println("obj=="+obj.getName()+"\t"+obj.getParent().getName());
list.add(obj);
} else {
tops.add(obj);
}
}
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$4");
for (Object entry : cache.keySet()) {
System.out.println("key"+"\t"+entry+"\t value"+cache.get(entry));
}
List children;
for (int i = 0; i < tops.size(); i++) {
children = (List)cache.get(tops.get(i));
if (children.size() > 0) {
tops.addAll(children);
}
}
//此时已将数据库当中的数据导成集合了!
System.out.println("正在同步【单位信息】...");
try {
syncer.beginTransaction();
for (Department depart : tops) {
if (!otherEquips.contains(depart)) {
otherDMO.addObject(depart);
}
stateDMO.saveEntityState(depart, -2147483648);
}
syncer.endTransaction();
System.out.println("【单位信息】同步完成.");
} catch (Exception es) {
syncer.rollback();
log.error(es);
System.out.println("同步【单位信息】出现异常,详情请查看日志!");
}
}
java 将数据字典(父子结构)绑定成List集合(第二种写法)
猜你喜欢
转载自blog.csdn.net/u014298444/article/details/77930253
周排行