【问题标题】:Use Custom Defined repository as CRUD implementation使用自定义存储库作为 CRUD 实现
【发布时间】:2021-01-08 10:41:59
【问题描述】:

我用mongo和redis开发了一个springboot应用。

我已使用以下注释来启用 Redis 存储库及其正常工作

@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> {

现在,默认 Redis 将使用自己的实现,即 KeyValueRepository,但我想使用我的自定义存储库作为 CrudRepository 的实现

我不想把public interface BaseProductRepository extends CrudRepository改成

public class BaseProductRepository extends RedisCrudRepositoryImpl

扩展应该仍然是 CrudRepository 但实现应该是 RedisCrudRepositoryImpl

【问题讨论】:

    标签: spring-boot spring-data-redis


    【解决方案1】:

    我可能无法直接解决您的问题。但是,Spring 确实允许您实现自己的基础存储库并将其用作其他存储库的实现。 请参阅Spring Data Common 2.2.6 第 4.6 节

    文档可能因您使用的版本而异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-25
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 2017-03-26
      • 2021-10-23
      相关资源
      最近更新 更多