首页 > 解决方案 > 带有变量 OR 表达式的 JPA 查询

问题描述

我有一种情况,我需要使用 JPA根据用户卡(卡的数量因用户而异)提取购买记录。

等效的 SQL 查询类似于: select * FROM Purchase WHERE cardId=10 OR cardId=1 OR.... ORDER BY purchasedate desc;

我的 DAO 方法签名是:

public List<Purchase> getPurchases(List<Card> cardsList)

我相信我将不得不使用标准查询,但我不太确定如何实现它。

标签: springjpa

解决方案


我建议你使用IN语句而不是多个ORs

select * FROM Purchase WHERE cardId in(1, 10) ORDER BY purchasedate desc

所以你可以使用

public List<Purchase> getAllByCardIdIn(List<Long> cardIds)


推荐阅读