2016-10-01 71 views
1

我遵循指令here概述为我的MongoDB存储库实现自定义方法。但是,没有一种自定义方法似乎可用(春天似乎没有发现findAllSeriesuploadSomeSeries)。我已经检查了命名Spring数据MongoDB自定义存储库方法实现

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

回答

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); 
    } 
} 
相关问题