Search code examples
springquerydsl

Returning Page<Object> in Query DSL


I am using Query DSL and want my result set to return a Page Object. Is there a way to do that in Query DSL? If so Whats my query going to be looking like? I am using JPAQuery and I have my QClasses

The Method structure is this

public Page<Object> searchPerson(String name,String phone){
 Page<Object> results=null;
 JPQLQuery query = new JPAQuery(entityManager);
 QPerson person = QPerson.person;
   //I am assuming my query would go here 
  results = query.from(person). ?????  


return results;} 

Help!


Solution

  • The solution for the above was using BooleanBuilder implemented on the method above and changed the method name to return Person Object. Please check BooleanBuilder

    QPerson person= QPerson.person;
    BooleanBuilder builder = this.getBuilder(name, phone,page, pageSize, sortFlag, sortItem);
        PageRequest pg = getPRequest(page, pageSize);
        Page<Person> pages personRepo.findAll(builder,pg);
      return pages;
    

    and then Implemented getBuilder Method for it which is the below one

    public BooleanBuilder getBuilder(String name, String phone, Integer page, Integer pageSize, String sortFlag, String sortItem) {
    
        QPerson person = QPerson.person;
        BooleanBuilder builder = new BooleanBuilder();
        builder.and(person.name.startsWith(name));
        return builder;
    }
    

    and finally implemented the getPRequest Method as the following

    public PageRequest getPRequest(Integer page, Integer pageSize) {
        return new PageRequest(page, pageSize);
    }
    

    Oooooh Happy Days!