Spring boot 如何在Spring Boot中从分页和排序存储库返回自定义类
我有一个这样的模型:Spring boot 如何在Spring Boot中从分页和排序存储库返回自定义类,spring-boot,spring-data-jpa,spring-data,Spring Boot,Spring Data Jpa,Spring Data,我有一个这样的模型: @Entity @Data @AllArgsConstructor @NoArgsConstructor public class Sale { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToOne(targetEntity = User.class) private User customer; @OneToOne(targetEnt
@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> {}
public interface SaleRepository扩展了分页和排序存储库{}
但是我希望使用存储库的“findAll”方法来返回一个带有特定字段的自定义类(而不是嵌套实体的所有数据),同时仍然保持分页和排序功能。我要返回的对象列表将包含以下内容:
- 萨利德
- 客户ID
- 客户名称
- 产品ID
- 产品名称
- 产品价格
Page<Sale> saleList = saleRepository.findAll(pageable);
return saleList;
Page saleList=saleRepository.findAll(可分页);
退货清单;
您可以创建and接口或DTO,并将其用作存储库中声明的查找结果:
Page<YourDTO> findAllAsDtos(Pageable pageable);
Page findAllAsDtos(可分页);
阅读更多关于投影的信息:谢谢Simon。我以前从未见过这种方法,它似乎是最简单、最直接的方法。干杯也许你应该阅读SpringDataJPA的全部参考文档,因为还有更多隐藏的宝石。