当前位置:编程学习 > JAVA >>

DetachedCriteria 分组查询问题

不知哪个高人用过DetachedCriteria 分组查询过数据,求指教!!

我这样实现不了按名称分组查询 
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.setProjection(Projections.groupProperty("name"));

不知道是我写的不对,还是有其他方法来实现分组(注:一定要用DetachedCriteria 分组,不要用什么hql或sql)

--------------------编程问答-------------------- up...有人遇到过吗 --------------------编程问答-------------------- DetachedCriteria 返回的不是对象的集合么 你加分组他还能返回对象么????这样不能加分组吧 --------------------编程问答-------------------- 直接用sql查询好了 --------------------编程问答--------------------
引用 2 楼  的回复:
DetachedCriteria 返回的不是对象的集合么 你加分组他还能返回对象么????这样不能加分组吧


最后是要返回对象的集合没错。但我现在是在拼凑条件,拼凑完条件把dc传过去,返回的就是集合了。
现在的问题就是分组的条件怎么拼凑?? --------------------编程问答-------------------- 这个分组有BUG  的确是有个方法支持分组  但是实际应用是无效的  只能写SQL --------------------编程问答-------------------- 我一般喜欢用criteria,但是这个测试环境不太好搭,你试下
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.setProjection(Property.forName("name").group()); --------------------编程问答--------------------
引用 6 楼  的回复:
我一般喜欢用criteria,但是这个测试环境不太好搭,你试下
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.setProjection(Property.forName("name").group());


不行,没反应... --------------------编程问答-------------------- 你有没有设置打印sql语句,确定是这儿的问题么,或许是其他地方的问题,前后的代码能列下么 --------------------编程问答--------------------
引用 7 楼  的回复:
引用 6 楼 的回复:
我一般喜欢用criteria,但是这个测试环境不太好搭,你试下
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.setProjection(Property.forName("name").group());


不行,没反应...


我在5楼就说过  他的确是有这个方法  但是实际中没有效果 只能写SQL  这是他的BUG --------------------编程问答--------------------
引用 8 楼  的回复:
你有没有设置打印sql语句,确定是这儿的问题么,或许是其他地方的问题,前后的代码能列下么


前后代码 :
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.setProjection(Property.forName("name").group());
List list = wb.find(dc);

控制台打印:
select this_.name as y0_ from oa.work this_ group by this_.name
看一下分组是有,但是这样只能查出这个分组的值name,其他的属性值怎么就显示不出来了,比如this_.password ... 请问这个要怎么解决? --------------------编程问答-------------------- DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
ProjectionList prjList = Projections.projectionList();
prjList.add(Projections.groupProperty("name"));
detachedCriteria.setProjection(prjList); --------------------编程问答--------------------
引用 11 楼  的回复:
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
ProjectionList prjList = Projections.projectionList();
prjList.add(Projections.groupProperty("name"));
detachedCriteria.se……


不行啊,也是select this_.name as y0_ from oa.user this_ group by this_.name
--------------------编程问答-------------------- 这个好像是一个debug,我尝试了很多方法,也不行实现,关注 --------------------编程问答-------------------- 直接看API呗。 --------------------编程问答-------------------- 有人懂DetachedCriteria这分组问题要怎么解决吗?? --------------------编程问答--------------------
引用 10 楼  的回复:
引用 8 楼 的回复:
你有没有设置打印sql语句,确定是这儿的问题么,或许是其他地方的问题,前后的代码能列下么


前后代码 :
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.setProjection(Property.forName("name").group());
List list = wb……


看出来的sql应该是正确的啊,password没列到分组查询里,查询的时候当然不会出来了 --------------------编程问答--------------------
引用 16 楼  的回复:
引用 10 楼 的回复:
引用 8 楼 的回复:
你有没有设置打印sql语句,确定是这儿的问题么,或许是其他地方的问题,前后的代码能列下么


前后代码 :
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
dc.setProjection(Property.forName("name").group());
……


对的哈! 你password没分组 怎么可能出结果啊, 在oracle ,mysql如果你直接写那样sql就直接报告错误了
在sybase如果那样写会忽略掉group by --------------------编程问答-------------------- 遇到同样的问题 up 
不知道LZ解决没有 --------------------编程问答-------------------- 最后的写法是怎么样的? --------------------编程问答-------------------- 楼主有解决方案了没,公示一下吧! --------------------编程问答--------------------
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,