Spring数据MongoDB自定义存储库方法实现

Spring数据MongoDB自定义存储库方法实现,spring,spring-boot,spring-data,spring-data-mongodb,Spring,Spring Boot,Spring Data,Spring Data Mongodb,我按照概述的说明为我的MongoDB存储库实现定制方法。但是,所有定制方法似乎都不可用(findAllSeries和uploadSomeSeries似乎在spring中找不到)。我查过名字了 系列报道: @RepositoryRestResource(collectionResourceRel = "series", path = "series", excerptProjection = SeriesProjection.class) public interface SeriesReposi

我按照概述的说明为我的MongoDB存储库实现定制方法。但是,所有定制方法似乎都不可用(
findAllSeries
uploadSomeSeries
似乎在spring中找不到)。我查过名字了

系列报道:

@RepositoryRestResource(collectionResourceRel = "series", path = "series", excerptProjection = SeriesProjection.class)
public interface SeriesRepository extends MongoRepository<Series, String>, SeriesRepositoryCustom {

    List<Series> findByWinnerId(@Param("id") String id);
}
public interface SeriesRepositoryCustom {

    ResponseEntity<Void> createSeries(Series series);
}
public class SeriesRepositoryImpl implements SeriesRepositoryCustom {

    private final MongoOperations operations;

    @Autowired
    public SeriesRepositoryImpl(MongoOperations operations) {
        this.operations = operations;
    }

    @Override
    @RequestMapping(method = RequestMethod.POST)
    public ResponseEntity<Void> createSeries(@RequestBody Series series) {
        // ... implementation
    }
}
@RepositoryRestResource(collectionResourceRel=“series”,path=“series”,extractprojection=SeriesProjection.class)
公共接口SeriesRepository扩展了MongoRepository,SeriesRepositoryCustom{
列出findByWinnerId(@Param(“id”)字符串id);
}
系列存储自定义:

@RepositoryRestResource(collectionResourceRel = "series", path = "series", excerptProjection = SeriesProjection.class)
public interface SeriesRepository extends MongoRepository<Series, String>, SeriesRepositoryCustom {

    List<Series> findByWinnerId(@Param("id") String id);
}
public interface SeriesRepositoryCustom {

    ResponseEntity<Void> createSeries(Series series);
}
public class SeriesRepositoryImpl implements SeriesRepositoryCustom {

    private final MongoOperations operations;

    @Autowired
    public SeriesRepositoryImpl(MongoOperations operations) {
        this.operations = operations;
    }

    @Override
    @RequestMapping(method = RequestMethod.POST)
    public ResponseEntity<Void> createSeries(@RequestBody Series series) {
        // ... implementation
    }
}
公共接口系列存储自定义{
响应创建系列(系列);
}
SeriesRepositoryImpl:

@RepositoryRestResource(collectionResourceRel = "series", path = "series", excerptProjection = SeriesProjection.class)
public interface SeriesRepository extends MongoRepository<Series, String>, SeriesRepositoryCustom {

    List<Series> findByWinnerId(@Param("id") String id);
}
public interface SeriesRepositoryCustom {

    ResponseEntity<Void> createSeries(Series series);
}
public class SeriesRepositoryImpl implements SeriesRepositoryCustom {

    private final MongoOperations operations;

    @Autowired
    public SeriesRepositoryImpl(MongoOperations operations) {
        this.operations = operations;
    }

    @Override
    @RequestMapping(method = RequestMethod.POST)
    public ResponseEntity<Void> createSeries(@RequestBody Series series) {
        // ... implementation
    }
}
public类SeriesRepositoryImpl实现SeriesRepositoryCustom{
私人最终运营;
@自动连线
public SeriesRepositoryImpl(MongoOperations操作){
这是操作=操作;
}
@凌驾
@RequestMapping(method=RequestMethod.POST)
公共响应属性createSeries(@RequestBody Series){
//…实施
}
}
让它工作起来;通过answer,我必须为我的存储库实现一个控制器,并将调用委托给自定义存储库中定义的方法:

@RepositoryRestController
public class SeriesController {

    private final SeriesRepository repository;

    @Autowired
    public SeriesController(SeriesRepository repo) {
        repository = repo;
    }

    @RequestMapping(value = "/series", method = RequestMethod.POST)
    public ResponseEntity<Void> create(@RequestBody Series series) {
        return repository.createSeries(series);
    }
}
@RepositoryRestController
公共类串行控制器{
私有最终系列存储库;
@自动连线
公共系列控制人(系列存托回购){
储存库=回购;
}
@RequestMapping(value=“/series”,method=RequestMethod.POST)
公共响应创建(@RequestBody系列){
返回repository.createSeries(series);
}
}
在本例中,为什么需要SeriesRepository接口?