【问题标题】:Spring Data MongoDB custom repository method implementationSpring Data MongoDB 自定义存储库方法实现
【发布时间】:2017-02-09 15:05:26
【问题描述】:

我按照here 概述的说明为我的 MongoDB 存储库实现自定义方法。但是,似乎没有一个自定义方法可用(findAllSeriesuploadSomeSeries 似乎没有被 spring 找到)。我已经检查了命名

SeriesRepository:

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

【问题讨论】:

    标签: spring spring-boot spring-data spring-data-mongodb


    【解决方案1】:

    搞定了;通过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);
        }
    }
    

    【讨论】:

    • 为什么在这个例子中需要 SeriesRepository 接口?
    猜你喜欢
    • 2017-03-26
    • 2017-06-18
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 2015-08-17
    • 2015-05-10
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多