Java spring data hazelcast@Query注释提供NullPointerException

Java spring data hazelcast@Query注释提供NullPointerException,java,spring-data,hazelcast,Java,Spring Data,Hazelcast,当按如下方式使用findAll()时,SpringBootTest中使用的库成功检索列表 @Override public List<Store> getStores() { return storeRepository.findAll(); } 存储库 public interface StoreRepository extends HazelcastRepository<Store,String> { @Query("cityId=%s and c

当按如下方式使用findAll()时,SpringBootTest中使用的库成功检索列表

@Override
public List<Store> getStores() {
    return storeRepository.findAll();
}
存储库

public interface StoreRepository extends HazelcastRepository<Store,String> {

    @Query("cityId=%s and countryId=%s")
    public List<Store> getStores(String cityId, String countryId);

}
有财产丢失了吗?如果是这样,为什么它与findAll()一起工作

默认的
findAll()
方法调用
SimpleKeyValueRepository
实例中的Spring数据,它使用
KeyValueTemplate(此实例具有HazelcastKeyValueAdapter)
findAll()方法

因此,
@Query
annoted查询Hazelcast-Spring数据实现的
@KeySpace
注释值
getMap
方法调用hazelcastInstance的
getMap
方法,该方法的键空间值为map键

简而言之,您需要向Store类添加
@KeySpace(“yourMapName”)
注释


额外信息;当您不将
@KeySpace(“yourMapName”)
放在类上时,它将以确切的包名存储,如com.yourpackage.model.store

public interface StoreRepository extends HazelcastRepository<Store,String> {

    @Query("cityId=%s and countryId=%s")
    public List<Store> getStores(String cityId, String countryId);

}
java.lang.NullPointerException: Retrieving a map instance with a null name is not allowed!

    at com.hazelcast.util.Preconditions.checkNotNull(Preconditions.java:59)
    at com.hazelcast.instance.HazelcastInstanceImpl.getMap(HazelcastInstanceImpl.java:183)
    at com.hazelcast.instance.HazelcastInstanceProxy.getMap(HazelcastInstanceProxy.java:99)
    at org.springframework.data.hazelcast.repository.support.StringBasedHazelcastRepositoryQuery.getMap(StringBasedHazelcastRepositoryQuery.java:68)
    at org.springframework.data.hazelcast.repository.support.StringBasedHazelcastRepositoryQuery.execute(StringBasedHazelcastRepositoryQuery.java:48)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:605)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)