我有以下类描述的实体映射数据库:
@Entity(name = "myitem")
public class MyItem {
@Id
private Long id;
private String type;
}
@Entity(name = "mycontainer")
public class MyContainer {
@Id
private Long id;
@ManyToOne
private MyItem item;
...
}
@Entity(name = "mytable")
public class MyTable {
@Id
private Long id;
@OneToMany
private Set<MyContainer> containers;
...
}
我正在使用 JPA Criteria API 来过滤和排序我的数据。排序和过滤参数动态变化并从 db 我使用 Spring Data JPA Page<S> findAll(Example<S> example, Pageable pageable)
( doc ) 获取结果。它适用于基本排序,但是当我想MyTable
按MyItem.id
某种类型排序时遇到问题。示例:每个容器有 2 个不同类型的项目,我想按只有一种类型的项目 ID 对表进行排序,而忽略第二个值。甚至可以使用 Spring Data JPA 完成这种排序吗?
编辑:我在这里需要一种动态方法,因为我的排序可以通过用户选择的各种字段来完成,这一点很重要。