我在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);
}
Run Code Online (Sandbox Code Playgroud)
只findByName暴露方法,有没有其他方法来公开方法RevisionRepository?我也尝试覆盖这些方法,DisciplineRepository但它不起作用.
谢谢...
我已经创建了一个自定义的休息控制器,我可以访问API并从资源中获取结果,问题是,它没有出现在HAL浏览器中.如何在HAL浏览器中公开这个自定义方法?谢谢...
@RepositoryRestController
public class RevisionController {
protected static final Logger LOG = LoggerFactory
.getLogger(RevisionController.class);
private final DisciplineRepository repository;
Function<Revision<Integer, Discipline>, Discipline> functionDiscipline = new Function<Revision<Integer, Discipline>, Discipline>() {
@Override
public Discipline apply(Revision<Integer, Discipline> input) {
return (Discipline) input.getEntity();
}
};
@Inject
public RevisionController(DisciplineRepository repository) {
this.repository = repository;
}
@RequestMapping(method = RequestMethod.GET, value = "/disciplines/search/{id}/revisions")
public @ResponseBody ResponseEntity<?> getRevisions(
@PathVariable("id") Integer id) {
Revisions<Integer, Discipline> revisions = repository.findRevisions(id);
List<Discipline> disciplines = Lists.transform(revisions.getContent(),
functionDiscipline);
Resources<Discipline> resources = new Resources<Discipline>(disciplines);
resources.add(linkTo(
methodOn(RevisionController.class).getRevisions(id)) …Run Code Online (Sandbox Code Playgroud)