【发布时间】:2018-10-30 12:39:18
【问题描述】:
我需要对实体进行分页和排序。
@Entity
@Table(name = "CATEGORY", catalog = "")
public class CategoryEntity {
private CategoryEntity categoryByParentCategoryId;
private Set<CategoryEntity> categoriesByCategoryId;
@ManyToOne(fetch = FetchType.LAZY,optional = false, cascade = CascadeType.PERSIST)
@JoinColumn(name = "PARENT_CATEGORY_ID", referencedColumnName = "CATEGORY_ID")
public CategoryEntity getCategoryByParentCategoryId() {
return categoryByParentCategoryId;
}
public void setCategoryByParentCategoryId(CategoryEntity categoryByParentCategoryId) {
this.categoryByParentCategoryId = categoryByParentCategoryId;
}
@OneToMany(mappedBy = "categoryByParentCategoryId", cascade = CascadeType.PERSIST)
public Set<CategoryEntity> getCategoriesByCategoryId() {
return categoriesByCategoryId;
}
public void setCategoriesByCategoryId(Set<CategoryEntity> categoriesByCategoryId) {
this.categoriesByCategoryId = categoriesByCategoryId;
}
从this link 和其他堆栈溢出的答案中,我发现我可以使用Paging Request like 进行排序和分页
Pageable size = new PageRequest(page, paginationDTO.getSize(),Sort.Direction.ASC, "id");
我的问题是我在模型中有一个self join 父子关系,我需要根据子节点的数量对父节点进行排序,如下所示。
这里的Number of SubCategories 是categoriesByCategoryId 的大小。我需要在id 的位置传递PageRequest 以根据子列表的大小进行排序。
附言。该模型有更多字段,但为了简短的问题,我只发布了相关字段
【问题讨论】:
标签: java sorting spring-boot spring-data-jpa repository