java - 在 ArrayList 中缓存 Spring JPA 中的查询结果

标签 java web-services spring-data-jpa

我在 spring 数据中有一个查询结果,比如:

public interface user extends extends CrudRepository<UserRegistration, Long> {
@Query(value="select ur from UserRegistration ur where "
        + " ur.location.id IN ?1 AND"
        + " ur.event.id IN ?2")
        public List<UserRegistration> getUsersBylocationAndEvent(long[] locationList, long[] eventList);
}

并在服务实现中使用此方法作为

public class userServiceImpl implements userService{
@Autowired
UserRegistrationRepository userRegistrationRepository;

@Override
public List<UserRegistration> getUserRegistarationByEventAndLocation(long[] locationList, long[] eventList, int checkInFlag, Date checkInDate, int checkOutFlag, Date checkOutDate) {
    List<UserRegistration> userRegistrationList = userRegistrationRepository.getUserRegByLocationIdsAndEvenIds(locationList, eventList);

    return userRegistrationList;
}}

并且我在多个 web 服务中使用了这个方法“getUserRegistarationByEventAndLocation()”,所以我想在列表中第一次调用 web 服务时缓存结果,并可以在其他 web 服务中使用这个列表。

最佳答案

我们可以使用@Cacheable 注解。可能会有帮助

 @Cacheable(value="UserRegistration")
  List<UserRegistration> getUserRegByLocationIdsAndEvenIds(locationList, eventList);
  {

  }

关于java - 在 ArrayList 中缓存 Spring JPA 中的查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44281202/

相关文章:

java - 更改字段错误颜色?

java - 塔防中寻路的最佳算法

java - 本地 JDBC 连接成功,部署时相同代码失败

java - 如果数据库 ID 不再存在,如何忽略删除时的异常?

java - JPA - 返回 StartDate 之后和 EndDate 之前的实体

java - Android Realm 0.87.5

ios - 如何向 iOS 中的所有 Controller 发送通知

iphone - iPhone 的设计模式 -> Web 服务功能?

c# - 将 Windows Phone 8.1 应用商店应用程序连接到现有的 Azure SQL 数据库

java - Docker 中的 OOM,带有 Spring Boot + H2 + JPA 和批处理