我有一个看起来像这样的模型:
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Sale {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToOne(targetEntity = User.class)
private User customer;
@OneToOne(targetEntity = Product.class)
private Product product;
}
我有一个分页和排序存储库,如下所示:
public interface SaleRepository extends PagingAndSortingRepository<Sale, Long> {}
但是我想使用存储库的“ findAll”方法,以便返回具有某些字段(而不是嵌套实体的所有数据)的自定义类,同时仍保持分页和排序功能。我要返回的对象列表将包含以下内容:
但是我不确定如何实际执行此操作。
我的控制器方法接受排序和分页参数,然后执行此操作:
Page<Sale> saleList = saleRepository.findAll(pageable);
return saleList;
答案 0 :(得分:2)
您可以创建Interface或DTO并将其用作存储库中声明的查找结果:
Page<YourDTO> findAllAsDtos(Pageable pageable);
在此处详细了解预测:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections