在普通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
关于按行条件结果排序的问题。
谢谢!
答案 0 :(得分:0)
所以找到了解决方案,但是按照我的首选方式使用jpa规范: JpaRepository: Spring Sort for runtime query variabels