Java 使用“路径”定义自定义方法/{resourcename}/search/“搜索”;使用spring数据rest
我很困惑。我不知道如何将自定义“搜索”方法与借助SpringDataREST加载的方法一起定义。 你能回答我吗,框架是否有这种“开箱即用”的可能性? 如果有,你能告诉我,我在哪里能找到它吗 为了更深入地了解我的情况,我描述了我的问题:Java 使用“路径”定义自定义方法/{resourcename}/search/“搜索”;使用spring数据rest,java,spring,rest,spring-data-rest,Java,Spring,Rest,Spring Data Rest,我很困惑。我不知道如何将自定义“搜索”方法与借助SpringDataREST加载的方法一起定义。 你能回答我吗,框架是否有这种“开箱即用”的可能性? 如果有,你能告诉我,我在哪里能找到它吗 为了更深入地了解我的情况,我描述了我的问题: class UserService { public String getListOfWaitingUsers() { return userRepository.findAll(UserSpecification.isWaiting()
class UserService {
public String getListOfWaitingUsers() {
return userRepository.findAll(UserSpecification.isWaiting());
}
}
public interface UserRepository extends PagingAndSortingRepository<User, Long>{
Page<User> findByNameLike(@Param("name") String name, Pageable pageable);
}
如何实现我的规范或服务方法(存储库中没有方法)将使用路径“/resource\u name/search/method\u name”(存储库的方法+(方法服务或规范)进行定义- SpringDataREST框架基于SpringDataRespository,所以这里可以忽略您的服务类
- 所有不属于CRUD/分页存储库的方法都以“搜索”形式公开方法提供了使用@Param annotation注释所有参数的方法。因此,在您的情况下,您需要按照实现方法。因此,一旦实现了
方法,该方法将公开为findByNameLike
URL。如果需要,您可以使用。/search/findByNameLike
注释@rest自定义rel和路径esource
- 另请注意,
理想情况下应该只处理UserRepository
对象,从而处理您定义的方法。在您的情况下,User
返回UserRepository
对象?相反,它应该如下所示ProcessContext
public interface UserRepository extends PagingAndSortingRepository<User, Long>{ Page<User> findByNameLike(@Param("name") String name, Pageable pageable); }
public interface UserRepository扩展了分页和排序存储库{ PageFindBynameLike(@Param(“name”)字符串名称,可分页; }
public interface UserRepository extends PagingAndSortingRepository<User, Long>{
Page<User> findByNameLike(@Param("name") String name, Pageable pageable);
}