Liferay對union的處理

Liferay中在Finder裏面不支持unio的查詢,建議採用原生SQL方式查詢

如下

//獲取待辦流程--優化後的方法(只需要id字符串集合)
	public static String getFlow2(ActionRequest request, long userId){
		String flowIds = "";//獲取所有流程id拼接的字符串
		String[] arr = getConfig(request);		
		String url = "jdbc:mysql://"+ arr[1] +":"+arr[2]+ "/" + arr[3] + "?user="+arr[4]+"&password="+arr[5]+"&useUnicode=true&characterEncoding=UTF8";
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		String sql = null;
		Map<String,Object> rowData = null;
		try {
			conn = DriverManager.getConnection(url);
			sql = "SELECT GROUP_CONCAT(t.flowId)  AS flowId FROM " + 
			     "(SELECT * FROM wf_Flow flow WHERE flow.status = 0 AND flow.startUserId = ? " +  
					 "UNION " + 
				  "SELECT * FROM wf_Flow flow WHERE flow.status = 1 AND flow.startUserId = ? AND flow.curPostId = '' " +
					"UNION " +
				  "SELECT flow.* FROM wf_Flow flow, (" +
						"select DISTINCT p.* from " +
						  "Post p, MyUser
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章