You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot Repository查询:筛选仅含单个Dock的TW数据

无需原生查询,用JPQL即可实现需求

不需要使用原生查询,直接在现有JPQL语句中添加集合大小的判断条件就能满足需求。JPQL支持SIZE()函数获取关联集合的元素数量,刚好可以用来筛选tw.docks.size() == 1的TW数据。

修改后的Repository方法如下:

@Query("""
        SELECT tw FROM TW tw
        INNER JOIN tw.docks d
        WHERE d.id = :dockId
        AND tw.status <> 'DELETED'
        AND SIZE(tw.docks) = 1
        """)
List<TW> findAllTWs(long dockId);

这里的SIZE(tw.docks) = 1就是限制TW关联的Dock数量恰好为1的条件,既满足需求,又能保持JPQL的ORM兼容性,无需依赖特定数据库的语法。

内容的提问来源于stack exchange,提问作者Matexon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:01:23