当我使用QueryDSL时,我在排序和弹出可分页方面遇到了一些问题 . 我需要非常高级的排序,而不仅仅是存储在同一个表中的数据库中的对象的字段 .
这是我的模型大约:
@Getter
@Setter
@Entity
public class Book {
@Id
@GeneratedValue
private long id;
@OneToMany
private Set<Category> cats = new HashSet<>()
}
@Getter
@Setter
@Entity
public class Category{
private long id;
private Name name;
}
public enum Name{
WINTER,
SUN,
SUMMER
}
现在,我想要做的就是按类别ID排序(desc和asc)Book(我有很多书)只有当Category有名称SUN时 . 我想将Qsort作为Sort接口传递给PageRequest sping类 .
我不知道如何实现它 . 我尝试了很多方法,但这些都没有解决这个问题(例如一些子查询在集合上调用any()并使用Qsort类) . 我担心使用Query DSL而不是Criteria Api会出错 . 有人可以指导我吗?我将非常感激 .
最好的祝福