1

我有一个名为的存储库BananaRepositoryImpl,其中包含一个返回 BananaDTO 列表的函数(旧代码无法返回映射的实体(Banana.java),这是一个约束,我无法更改此行为:()

public class BananaRepositoryImpl implements BananaRepository{
   @Autowired
   EntityManager em;

   public List<BananaDTO> findAllBananes(){
     //logic to get list of bananasDTO object types using Query query = em.createQuery(JPQL_QUERY_HERE);
   }
}

知道该BananaDTO对象是Banana.java类的 DTO,如下所示:

@Data
@Entity
public class Banana{
  private Long id;
  private Double price;
  private Double weight;
}

我应该做的是在该findAllBananes()方法上实现分页,以便我可以使用 spring Data (或其他方法)返回一个 Page 。

4

1 回答 1

0

假设 的属性BananaDTO是实体属性的子集,Banana您可以使用Spring Data JPA 的基于类的投影支持,即您只需将 aPageable作为参数添加到您的方法并返回 a Page<BananaDTO>

interface BananaRepository extends CrudRepository<Banana, Long> {
    Page<BananaDTO> findAllBananes(Pageable page)
}
于 2018-05-03T16:50:13.460 回答