我找到了一种完全模仿Spring Data Rest行为的方法。诀窍在于结合使用
PagedResourcesAssembler和的实参注入实例
PersistentEntityResourceAssembler。只需按以下方式定义你的控制器…
@RepositoryRestController@RequestMapping("...")public class ThingController { @Autowired private PagedResourcesAssembler pagedResourcesAssembler; @SuppressWarnings("unchecked") // optional - ignores warning on return statement below... @RequestMapping(value = "...", method = RequestMethod.GET) @ResponseBody public PagedResources<PersistentEntityResource> customMethod( ..., Pageable pageable, // this gets automatically injected by Spring... PersistentEntityResourceAssembler resourceAssembler) { Page<MyEntity> page = ...; ... return pagedResourcesAssembler.toResource(page, resourceAssembler); }}这要归功于
PersistentEntityResourceAssemblerArgumentResolverSpring用来
PersistentEntityResourceAssembler为你注入的。结果正是你从一种存储库查询方法所期望的结果!



