)当我使用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会出错。有人可以指导我吗?我将非常感激。
最好的问候