Spring数据:按行条件的顺序排序

时间:2015-02-14 12:54:02

标签: spring-data spring-data-jpa criteria-api querydsl

在普通SQL中,可以计算运行时变量,例如每行的IF / SUM,并可以使用它进行排序。 关于在QueryDSL / Criteria API中执行此类操作的可能性的问题 是否有可能?

我有一个名为OrderSummary的实体,包含以下字段:

@Entity
@Table(name = "orders")
public class OrderSummary implements Serializable {

    @Id
    @Column(name = "id")
    @GeneratedValue
    private Long id;

    @Column(name="title")
    private String title;

    @Column(name = "fixing_due_date")
    @Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
    private DateTime fixingDueDate;
    ...
}

我已经生成了Q级。

所以我尝试申请下面的说明符:

private OrderSpecifier<Boolean> order() {
    QOrderSummary orderSummary = QOrderSummary.orderSummary;
    DateTimePath<DateTime> fixingDueDate = orderSummary.fixingDueDate;
    BooleanExpression be = fixingDueDate.after(DateTime.now());
    OrderSpecifier<Boolean> ose = be.desc();
    return ose;
}

但是我得到了异常“com.mysema.query.types.PredicateOperation无法转换为com.mysema.query.types.Path”

我问了一个类似的问题(关于CriteriaAPI),但不幸的是没有人理解它的真正含义: JpaRepository: Spring Sort for runtime query variabels

关于按行条件结果排序的问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

所以找到了解决方案,但是按照我的首选方式使用jpa规范: JpaRepository: Spring Sort for runtime query variabels