Closed pinkcao closed 1 year ago
意思是跨服务回显不行,本服务回显可以吗?
都是用的 OrgApi 吗?
是的,跨服务回显在redis原始为空的情况下会失败,插入cacheKey, null,本服务之间可以成功回显。 跨服务调用时是走的top.tangyh.lamp.common.api.OrgApi,从echoController调到了orgManager.findByIds(ids); 本服务调用时是直接调了baseOrgManagerImpl.findByIds(ids)
好,我试试
@Override
public Map<Serializable, Object> findByIds(Set<Serializable> ids) {
return superManager.findByIds(ids.stream().map(Convert::toLong).collect(Collectors.toSet()));
}
原因: feign 调用时,会将Set
所以,远程回显时,需要自己转一下类型。
版本信息:
JDK 版本(必填) : 11 源码版本(必填):lamp-cloud-pro-datasource-column 4.12.3 MySQL(必填): 8.0.11 Nacos(必填):2.0.2
问题描述:
跨服务回显org时如果在redis中无相应key value将直接往redis插入key,null键值对,导致回显错误
报错截图
重现步骤
1.flush redis
3.在其他服务的resultVO实体中增加orgId的@Echo注解
4.前端登录
5.前端直接进行pageQuery,跨服务回显(有echoService.action)
6.打印部分如报错截图部分,不知为何在map有相应值的情况下,却无法get到
7.再次flush redis
8.再次前端登录
9.同服务间echo(查询用户)
可以从map中获取相应value
请问是可能哪里出了问题