java - Hibernate:复杂的自连接查询
问题描述
如何使用 Hibernate 创建此查询(使用规范接口/JpaSpecificationExecutor)?
SELECT i1.*
FROM Images AS i1 LEFT JOIN images AS i2
ON (i1.Gallery = i2.Gallery AND i1.Submitted < i2.Submitted)
WHERE i2.Submitted IS NULL;
来源: https ://www.exchangecore.com/blog/mysql-sql-retrieve-most-recent-or-largest-record-group/
到目前为止,我已经尝试过:
public Predicate toPredicate(final Root<GalleryEntity> root, final CriteriaQuery<?> query, final CriteriaBuilder criteriaBuilder) {
final List<Predicate> predicates = new ArrayList<Predicate>();
final Join join = root.join("Images", JoinType.LEFT);
join.on(criteriaBuilder.equal(root.get("Gallery"), join.get("Gallery")));
predicates.add(join.getOn());
return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
}
解决方案
推荐阅读
- task - 赛普拉斯任务。然后不按预期工作
- python - 我不断收到 500 内部服务器错误
- amazon-web-services - scheduling notebooks within EMR and issue installing libraries aws
- r - How to plot maps scattered over another plot (i.e. outside their actual coordinates)?
- javascript - 有没有办法在屏幕调整大小时关闭导航下拉菜单?
- java - 如何将文本文件的行读入JavaFx中的数组
- tfs - 贡献者签入后管理员验证代码 - TFS
- google-analytics - Google Analytics(分析)视图使用类似细分
- android-studio - 在 Android Studio 中,在工作场所的设备之间共享 JSON 数据的最佳方式是什么
- debugging - 如何获取详细的 valgrind 核心或使用 gdb 将调试附加到核心在启动时转储的进程?