Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring @Cacheable()返回id null_Spring_Caching_Hazelcast_Spring Cache - Fatal编程技术网

Spring @Cacheable()返回id null

Spring @Cacheable()返回id null,spring,caching,hazelcast,spring-cache,Spring,Caching,Hazelcast,Spring Cache,我有一个方法findAll()返回BD中的所有专业,在这个方法中我放置注释@Cacheable从缓存中获取数据,问题是当我执行/specialitiesapi时,我第一次获得正确的数据,当我第二次执行api时,我得到了带有空ID的数据 @Service @CacheConfig(cacheNames = ServiceConstant.SPECIALITY) public class SpecialityServiceImpl implements SpecialityService {

我有一个方法
findAll()
返回BD中的所有专业,在这个方法中我放置注释
@Cacheable
从缓存中获取数据,问题是当我执行
/specialities
api时,我第一次获得正确的数据,当我第二次执行api时,我得到了带有空ID的数据

@Service
@CacheConfig(cacheNames = ServiceConstant.SPECIALITY)
public class SpecialityServiceImpl implements SpecialityService {

    @Autowired
    private SpecialitySearchRepository specialitySearchRepository;

    @Autowired
    private SpecialtyMapper specialityMapper;

    @Override
    @Cacheable
    public List<SpecialityDTO> findAll() {
        return specialitySearchRepository.findAll().stream().map(specialityMapper::toDto)
                .collect(Collectors.toCollection(LinkedList::new));
    }

}

@RestController
public class SpecialityResource {

    @Autowired
    private SpecialityService specialityService;

    @GetMapping("/specialities")
    public List<SpecialityDTO> getAllSpecialitys() {
        return specialityService.findAll();
    }

}

@Aymen Kanzari,请看:


我试图复制这个问题,但它似乎像预期的那样工作。我可以看到findAll方法内部的
用于第一个调用,但下一个调用只会命中Hazelcast缓存。您能更详细地描述一下这个问题吗?

同时粘贴缓存配置,可能会有所帮助。
@Configuration
@EnableCaching
public class CacheConfiguration {

    private static final String HAZELCAST_LOGGING_TYPE = "hazelcast.logging.type";

    @Bean
    public Config hazelCastConfig() {
        return new Config().setInstanceName("cache")
                .addMapConfig(
                        new MapConfig().setName(ServiceConstant.SPECIALITY)
                                .setMaxSizeConfig(new MaxSizeConfig(200, MaxSizeConfig.MaxSizePolicy.FREE_HEAP_SIZE))
                                .setEvictionPolicy(EvictionPolicy.LRU).setTimeToLiveSeconds(100))
                .setProperty(HAZELCAST_LOGGING_TYPE, "none");
    }

}