public JSONArray getTreeNodes(String departmentSn) {
Department department = new Department();
JSONArray jsonArray = new JSONArray();
if (!departmentSn.equals("-1")) {
department.setParentDepartmentSn(departmentSn);
} else {
//这里将department的一个布尔属性设置为true
department.setHasActivated(true);
}
//在这里进行筛选
List<Department> departments = departmentMapper.select(department);
System.out.print(departments);
for (Department DEP : departments) {
Department d = new Department();
Department sonDepartment = departmentMapper.selectByPrimaryKey(DEP.getDepartmentSn());
JSONObject jsonObject = new JSONObject();
jsonObject.put("label", sonDepartment.getDepartmentName());
jsonObject.put("data", sonDepartment.getDepartmentSn());
d.setParentDepartmentSn(DEP.getDepartmentSn());
if (departmentMapper.selectCount(department) == 0) {
jsonObject.put("leaf", true);
} else {
jsonObject.put("leaf", false);
}
jsonArray.add(jsonObject);
}
return jsonArray;
}
}
Wenn ich im obigen Code einen DepartmentSn übergebe, der nicht -1 ist, gelangt dieser nicht in den else-Zweig. Nach der folgenden Filterung ist die Ergebnismenge jedoch leer, wie unten gezeigt
Die Größe beträgt hier 0,
Und als ich das boolesche Attribut in der Entitätsklasse in ein String-Attribut geändert habe (wie im Bild gezeigt)
Vor der Änderung
Nach der Änderung
Die gefilterten Ergebnisse sind normal.
Die Größe beträgt hier 8.
Warum ist das so?
Außerdem habe ich versucht, das boolesche Attribut manuell auf false zuzuweisen, und das Ergebnis war ebenfalls leer, wie unten gezeigt.
实体类不要用基本类型,可以先试试 Boolean,如果有问题,把SQL贴出来看看。