【发布时间】:2020-07-03 16:56:00
【问题描述】:
1) 示例中使用的模型
@Getter
@Setter
@Entity
@Table(name = "car")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Car {
private String color;
}
@Entity
@Getter
@Setter
public class Truck extends Car {
private Clutch clutch;
}
@Entity
@Getter
@Setter
public class Clutch {
private String manufacturerCode;
}
和存储库类:
public interface CarRepository extends JpaRepository<Car, Integer>,
QuerydslPredicateExecutor<Car> {}
public interface TruckRepository extends JpaRepository<Truck, Integer>,
QuerydslPredicateExecutor<Truck> {}
public interface PassengerCarRepository extends JpaRepository<PassengerCar, Integer>,
QuerydslPredicateExecutor<PassengerCar> {}
2。问题
在 GUI 中有一个对所有“汽车”的调用,所以调用来自“CarRepository”:
carRepository.findAll(predicate, pageable)
我可以创建自己的“pageable”实现并将“sort”放入其中,如下所示:
@Getter
public class OwnPageable extends AbstractPageRequest {
private final Sort sort;
public CustomPageRequest(final int page, final Sort sort) {
super(page, size);
this.sort = sort;
}
所以在这个电话中:carRepository.findAll(predicate, pageable) 我把我的“OwnPageable”和“排序”字段放在一起。它工作得很好。但只有当我指定来自Car 的字段而不是来自任何具体实现时。如果我将:org.springframework.data.domain.Sort 与属性clutch.manufacturerCode 放入ownPageable 它将不起作用,因为clutch 不是car 实体的一部分。这很清楚。
3。问题
在我的示例中如何按clutch.manufacturerCode 排序?
【问题讨论】:
标签: spring-data querydsl