Use case for Pagination of Embedded resources

前端 未结 1 1255
再見小時候
再見小時候 2020-12-18 12:31

There is a use case I am struggling with SDR as below -

THere is User Table and RefSecQuestion tables

User -> ManyTOOne -> RefSecQuestion , Ref         


        
相关标签:
1条回答
  • 2020-12-18 13:05

    Finally I am able to get my desired results and am posting here for all SDR users. I wanted to have pagination in this URL - where User -> One To Many -> UserLanguages

    /users/{id}/userLanguages
    

    Now Using default SDR configuration, embedded resources don't get paginated and therefore I have to manually expose them and the Workaround is as below which still takes very less lines of code -

    @RestController
    public class MainController {
    
        @RequestMapping(value = "/users/{id}/userLanguages", method = RequestMethod.GET)
        @PreAuthorize("permitAll")
        public ModelAndView findUserLanguages(@PathVariable Integer id) {
            ModelAndView model = new ModelAndView("forward:/userLanguages/search/findByUserId?userId=" + id);
            return model;
        }
    

    then, in UserLangRepository

    public interface UserLanguageRepository extends BaseRepository<UserLanguage, Integer> {
    
        Page<UserLanguage> findByUserId(@Param("userId") Integer userId, Pageable pageable);
    }
    

    Here name findByUserId follows Spring Data Query Derivation rule where there is user column in UserLanguage and id column in User. Then following URL is paginated and have other options as well like sort, size etc..

    http://localhost:8585/MYAPP/users/3/userLanguages
    

    There is an issue however that next and prev links point to forwarded link..

    0 讨论(0)
提交回复
热议问题