欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Liferay对union的处理

程序员文章站 2022-07-15 13:25:29
...

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
相关标签: Liferay