jeesite實戰(三十六)——非status的其他屬性In條件查詢
阿新 • • 發佈:2021-01-09
系列文章目錄
提示:寫完文章後,目錄可以自動生成,如何生成可參考右邊的幫助文件
status的In條件查詢
前言
本系列文章主要記錄專案過程中重點的專案技術
一、背景
與上一篇文章類似,主要記錄一個非status屬性需要查詢符合條件的幾個數值的查詢,用in查詢
二、實現過程
1.新增一個介面
目的是為了避免與預設的介面衝突
@RequiresPermissions("plan:trainingPlan:view" )
@RequestMapping(value = "executePlanPage")
@ResponseBody
public Page<TrainingPlan> executePlanPage(TrainingPlan trainingPlan, HttpServletRequest request, HttpServletResponse response) {
trainingPlan.setPage(new Page<>(request, response));
// 呼叫資料許可權過濾方法
trainingPlanService. addDataScopeFilter(trainingPlan);
Page<TrainingPlan> page = trainingPlanService.executePlanPage(trainingPlan);
return page;
}
2.修改entity實體
直接在實體中新增如下方法
public String[] getExecutionStatus_in() {
return sqlMap.getWhere().getValue("execution_status", QueryType.IN);
}
public void setExecutionStatus_in(String[] executionStatus_in) {
sqlMap.getWhere().and("execution_status", QueryType.IN, executionStatus_in);
}
下圖示記的引數名稱為SQL語句查詢的條件引數名稱
修改service方法
copy分頁方法,在方法中呼叫entity中新增的方法,具體程式碼如下
@Transactional(readOnly=false)
public Page<TrainingPlan> executePlanPage(TrainingPlan trainingPlan) {
if(trainingPlan.getExecutionStatus()==null||trainingPlan.getExecutionStatus().equals("")) {
//設定陣列的值
String[] statuArray = {"1","2"};
trainingPlan.setExecutionStatus_in(statuArray);
}
return super.findPage(trainingPlan);
}
至此呼叫這個介面就好了
注意事項
呼叫介面頁面的引數executionStatus不能存在;假設存在值且為0,那麼查詢條件為execttion_status=‘0’ and exection_status in (‘1’, ‘2’)
總結
至此,本文章結束