[英]Spring cache - “Null key returned for cache operation”
@Transactional
@Repository
@RepositoryDefinition(domainClass = UserApi.class, idClass = String.class)
public interface UserApiRepository{
@Cacheable(value="byUserId",key="#userId")
List<UserApi> findByUserId(String userId);
@CacheEvict(value="byUserId",key="#userApi.userId")
void save(UserApi userApi);
}
UsrApi.java UsrApi.java
@Entity
@Table(name = "user_api")
public class UserApi {
private String id;
private String userId;
private String api;
private String platform;
private String apiType;
@Id
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getApi() {
return api;
}
public void setApi(String api) {
this.api = api;
}
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public String getApiType() {
return apiType;
}
public void setApiType(String apiType) {
this.apiType = apiType;
}
}
It's ERROR When I add key="#userId"
. 这是错误当我添加
key="#userId"
。
java.lang.IllegalArgumentException: Null key returned for cache operation
(maybe you are using named params on classes without debug info?)
Builder[public abstract java.util.List com.awinson.repository.UserApiRepository.findByUserId(java.lang.String)]
caches=[byUserId] | key='#userId' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='' | unless='' | sync='false'
It's doesn't update the cache when I use " save
" method. 当我使用“
save
”方法时,它不会更新缓存。
you could try to replace key with p0 你可以尝试用p0替换key
@Transactional @Repository @RepositoryDefinition(domainClass = UserApi.class, idClass = String.class) public interface UserApiRepository{ @Transactional @Repository @RepositoryDefinition(domainClass = UserApi.class,idClass = String.class)public interface UserApiRepository {
@Cacheable(value="byUserId",key="#p0")
List<UserApi> findByUserId(String userId);
@CacheEvict(value="byUserId",key="#p0.userId")
void save(UserApi userApi);
}
reference from Spring Cache Abstraction VS interfaces VS key param ("Null key returned for cache operation" error) Spring Cache Abstraction VS接口VS key param的引用(“为缓存操作返回的Null键”错误)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.