栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Hibernate Criteria API编写HQL子句

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Hibernate Criteria API编写HQL子句

您将要对分离的子查询使用Criteria projections API:

Criteria crit = session.createCriteria(Notification.class, "main");DetachedCriteria notificationSubQuery = DetachedCriteria.forClass(Notification.class, "sub");notificationSubQuery.setProjection(Projections.max("date"));notificationSubQuery.add(Restrictions.eqProperty("sub.serviceId", "main.serviceId"));crit.add(Subqueries.propertyIn("date", notificationSubQuery));crit.addOrder(Order.desc("date"));

这反映了您在HQL查询中使用的技术。

编辑

我更新了查询,以使您的主通知类和子查询之间的serviceId匹配,基本上与此HQL查询相同:

FROM Notification main WHERe date IN     (SELECt MAX(sub.date) FROM Notification sub WHERe sub.serviceId = main.serviceId) ORDER BY date ASC

这样可以避免在两个不同的serviceId之间使用非最大日期匹配的情况,如下所示:

serviceId = 1: date = 3,4,5serviceId = 2: date = 4,5,6

旧查询返回:

serviceId: 1, date: 5serviceId: 2, date: 5,6

新查询返回:

serviceId: 1, date: 5 serviceId: 2, date: 6

让我知道这是否适合您。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409440.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号