【发布时间】:2015-06-19 09:23:33
【问题描述】:
这是我迭代 module_id 的查询。 例如:1,2,3,4,5(使用 GROUP CONCAT)。
String sql="SELECT GROUP_CONCAT(module_id) AS module_id
FROM sox_customer_partner_modules "
+ "WHERE customer_id= :customer_id
AND partner_id= :partner_id
AND STATUS='1'";
我的查询执行良好,它返回结果为 1、2、3、4、5。但是当我在 java 中迭代时,它只获取第一个值,即 1
我正在使用休眠获取记录。
问题是我只能获取第一条记录。例如:1
但我想获取像 1,2,3,4,5 这样的字符串。
我的java代码是:
Session session = sessionFactory.getCurrentSession();
SQLQuery query = session.createSQLQuery(sql);
query.addScalar("module_id", Hibernate.INTEGER);
query.setParameter("customer_id", customer_id);
query.setParameter("partner_id", partner_id);
Integer module_id=0;
List<Object> CustModList = query.list();
return CustModList.toString(); //Which returns 1.. But I want 1,2,3,4,5
请帮助需要。提前致谢
【问题讨论】:
-
我想你错过了 group by 声明。
标签: java mysql sql spring hibernate