Java springdatarest&;SpringDataEnvers:如何为扩展修订版存储库的存储库公开RESTAPI
我的存储库扩展了Java springdatarest&;SpringDataEnvers:如何为扩展修订版存储库的存储库公开RESTAPI,java,rest,spring-data-rest,Java,Rest,Spring Data Rest,我的存储库扩展了RevisionRepository(Spring Data Envers)的端点,我在公开RevisionRepository端点时遇到问题,如下所示: @RepositoryRestResource(path = "disciplines", itemResourceRel = "disciplines") public interface DisciplineRepository extends RevisionRepository<D
RevisionRepository
(Spring Data Envers)的端点,我在公开RevisionRepository
端点时遇到问题,如下所示:
@RepositoryRestResource(path = "disciplines", itemResourceRel = "disciplines")
public interface DisciplineRepository extends
RevisionRepository<Discipline, Integer, Integer>,
CrudRepository<Discipline, Integer>{
@RestResource(path = "findByName", rel = "findByName")
List<Discipline> findByName(String name);
}
@RepositoryRestResource(path=“规程”,itemrourcerel=“规程”)
公共接口规程假定扩展
修订库,
积垢的{
@RestResource(path=“findByName”,rel=“findByName”)
列出findByName(字符串名称);
}
只有findByName
方法被公开,在RevisionRepository
中是否有其他方法公开这些方法?我还尝试在striciderepository
中重写这些方法,但它不起作用
谢谢…您必须编写一个自定义控制器方法来实现此功能,类似于以下内容:
@Autowired
private DisciplineRepository disciplineRepository;
@RequestMapping(value = "/disciplines/{id}/changes", method = RequestMethod.GET)
public ResponseEntity<Resource<RevisionsObject>> getDisciplineRevisions(@PathVariable(value = "id")Discipline discipline) {
if (discipline != null) {
Revisions<Integer, Discipline> disciplineRevisions = disciplineRepository.findRevisions(discipline.getId());
return new ResponseEntity<>(new Resource<>(disciplineRevisions), HttpStatus.OK);
} else {
throw new ResourceNotFoundException();
}
}
@Autowired
私人纪律;私人纪律;私人纪律;
@RequestMapping(value=“/productions/{id}/changes”,method=RequestMethod.GET)
public ResponseEntity GetDistrictionereVisions(@PathVariable(value=“id”)规程){
if(规程!=null){
修订规程视图=规程存储.findRevisions(规程.getId());
返回新的ResponseEntity(新资源(规程视图),HttpStatus.OK);
}否则{
抛出新的ResourceNotFoundException();
}
}