我使用Spring Boot和Spring Cache。我有一个方法,给定ID的列表,返回与这些ID匹配的Food
列表:如何使用“IN”运算符缓存数据库查询?
public List<Food> get(List<Integer> ids) {
return "select * from FOOD where FOOD_ID in ids"; // << pseudo-code
}
我要来缓存ID的结果。想象一下,我做的:
List<Food> foods = get(asList(1, 5, 7));
然后:
List<Food> foods = get(asList(1, 5));
我想Food
ID为1和Food
ID为5,从缓存中检索。可能吗?
我知道我可以做一个方法:
@Cacheable(key = "id")
public Food getById(id){
...
}
和重复的ID列表,并调用它每一次,但在这种情况下,我不走IN
SQL运营商的优势,对不对?谢谢。
只是做 '回报ids.stream()地图(服务:: getById).collect(Collectors.toList() )'0 –