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 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; } }
In the above code, when I pass in a departmentSn that is not -1, it does not enter the else branch. However, after the following filtering, the result set is empty, as shown below
The size here is 0.
And when I change the boolean attribute in the entity class to a string attribute (as shown in the picture)
before fixing
After modification
The filtering results are normal.
The size here is 8.
Why is this?
In addition, I also tried to manually change the boolean The attribute is assigned to false, and the result is also empty. As shown below.
Don’t use basic types for entity classes. You can try Boolean first. If you have any problems, post the SQL and take a look.