mybatis - 為什么Java后端用Boolean屬性篩選不出對象,但改成String類型就可以了?
問題描述
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; }}
在上面的代碼中,當我傳入一個不為-1的departmentSn進來時,它并沒有進入else分支,然而經過下面的篩選后結果集為空,如下圖
此處size為0.而當我將實體類中的boolean屬性改為string屬性后(如圖)
修改前
修改后
篩選結果就正常了.此處size為8.這是為什么呢?另外,我還嘗試了手動將boolean屬性賦為false,結果同樣為空.如下圖.
問題解答
回答1:實體類不要用基本類型,可以先試試 Boolean,如果有問題,把SQL貼出來看看。
