gpt4 book ai didi

java - Spring 缓存 - "Null key returned for cache operation"

转载 作者:行者123 更新时间:2023-12-04 17:54:39 32 4
gpt4 key购买 nike

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

添加 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'

当我使用“ save ”方法时,它不会更新缓存。

最佳答案

你可以尝试用 p0 替换 key

@交易
@Repository
@RepositoryDe​​finition(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);
}

引用自
Spring Cache Abstraction VS interfaces VS key param ("Null key returned for cache operation" error)

关于java - Spring 缓存 - "Null key returned for cache operation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41319555/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com