Spring 数据 MongoDB 自定义存储库方法实现
Spring Data MongoDB custom repository method implementation
我按照 here 概述的说明为我的 MongoDB 存储库实施自定义方法。但是,none 的自定义方法似乎可用(spring 似乎找不到 findAllSeries
和 uploadSomeSeries
。我检查了命名
系列资料库:
@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);
}
}
我按照 here 概述的说明为我的 MongoDB 存储库实施自定义方法。但是,none 的自定义方法似乎可用(spring 似乎找不到 findAllSeries
和 uploadSomeSeries
。我检查了命名
系列资料库:
@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);
}
}