2017-05-31 82 views
2

我在春天的数据,如查询结果:缓存查询结果的ArrayList

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; 
}} 

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

+0

使列表成为一个成员变量并检查内容是否存在。不知道这是你在找什么 – XtremeBaumer

回答

1

我们可以使用@Cacheable注释。这可能有帮助

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

    }