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的一個(gè)布爾屬性設(shè)置為true department.setHasActivated(true);}//在這里進(jìn)行篩選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; }}
在上面的代碼中,當(dāng)我傳入一個(gè)不為-1的departmentSn進(jìn)來時(shí),它并沒有進(jìn)入else分支,然而經(jīng)過下面的篩選后結(jié)果集為空,如下圖
此處size為0.而當(dāng)我將實(shí)體類中的boolean屬性改為string屬性后(如圖)
修改前
修改后
篩選結(jié)果就正常了.此處size為8.這是為什么呢?另外,我還嘗試了手動將boolean屬性賦為false,結(jié)果同樣為空.如下圖.
問題解答
回答1:實(shí)體類不要用基本類型,可以先試試 Boolean,如果有問題,把SQL貼出來看看。
