You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@cached等注解name属性 是否能够像 key属性一样使用SPEL表达式?
使用 spring data jpa 对Service层做了通用方法封装BaseService,目前key属性能根据SPSEL表达式从方法获取指定的泛型Entity类名,但name属性不行,导致所有BaseService子类都使用一个name(name = "BaseCache:getEntityById"),默认name使用的类名+方法名策略,类名指的是BaseService而不是子类UserServiceImpl,有没有办法把name属性根据不同的子类把BaseService中@cached的name属性区分开。
代码如下:
`
public class BaseService<E extends BaseEntity, PK extends Serializable>{
@cached等注解name属性 是否能够像 key属性一样使用SPEL表达式?
使用 spring data jpa 对Service层做了通用方法封装BaseService,目前key属性能根据SPSEL表达式从方法获取指定的泛型Entity类名,但name属性不行,导致所有BaseService子类都使用一个name(name = "BaseCache:getEntityById"),默认name使用的类名+方法名策略,类名指的是BaseService而不是子类UserServiceImpl,有没有办法把name属性根据不同的子类把BaseService中@cached的name属性区分开。
代码如下:
`
public class BaseService<E extends BaseEntity, PK extends Serializable>{
@Autowired
protected BaseRepository<E, PK> baseRepository;
@cached(name = "BaseCache:getEntityById", key = "targetObject.getEntityName():#id")
public E getEntityById(PK id) {
return baseRepository.findById(id).orElse(null);
}
}
@service
public class UserServiceImpl extends BaseService<User, Long>{
}
`
The text was updated successfully, but these errors were encountered: