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

Spring Data MongoDB custom repository method implementation

我按照 here 概述的说明为我的 MongoDB 存储库实施自定义方法。但是,none 的自定义方法似乎可用(spring 似乎找不到 findAllSeriesuploadSomeSeries。我检查了命名

系列资料库:

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

    List<Series> findByWinnerId(@Param("id") String id);
}

SeriesRepositoryCustom:

public interface SeriesRepositoryCustom {

    ResponseEntity<Void> createSeries(Series series);
}

SeriesRepositoryImpl:

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
    }
}

成功了;通过 this 回答,我必须为我的存储库实现一个控制器,并将调用委托给自定义存储库中定义的方法:

@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);
    }
}