问题描述
我已经使用 mongo 和 redis 开发了一个 springboot 应用程序。
我使用以下注释来启用 Redis Repository 及其工作正常
@EnableRedisRepositories(basePackages = {"com.foo.something"})
但是现在我已经实现了一个自定义的 CRUD 存储库,如下所示
public abstract class RedisCrudRepositoryImpl<T,ID> implements CrudRepository<T,ID> {
private RedisMappingContext mappingContext;
@Autowired
private StringRedistemplate template;
private RedisConverter converter;
@Autowired
private ObjectMapper objectMapper;
@Autowired
private RedisCustomConversions customConversions;
private Entityinformation<T,ID> entityinformation;
我的 Repository 类看起来像这样
public interface BaseProductRepository extends CrudRepository<BaseProduct,String> {
现在 byDefault Redis 将有自己的实现,即 keyvalueRepository 但我想使用我的自定义存储库作为 CrudRepository 的实现
我不想将 public interface BaseProductRepository extends CrudRepository
更改为
public class BaseProductRepository extends RedisCrudRepositoryImpl
扩展应该仍然是 CrudRepository 但实现应该是 RedisCrudRepositoryImpl
解决方法
我可能无法直接解决您的问题。但是,Spring 确实允许您实现自己的基本存储库并将其用作其他存储库的实现。 请参阅Spring Data Common 2.2.6第 4.6 节
文档可能因您使用的版本而异。