【发布时间】:2016-02-24 11:03:21
【问题描述】:
我在 ProductList 实体类中有以下 JPQL,它按预期执行。
select DISTINCT new foo.bar.ProductListDTO(p.prodId, " +
CASE WHEN (p.prodId = 'ZCX') THEN CONCAT(p.prodDesc, ' - ', e.userId)
ELSE p.prodDesc END) from
ProductList p LEFT JOIN p.productCatalogueList c where c.userId='ZAM'
ProductListDTO 类
public ProductListDTO(String prodId, String prodDesc, String userId) {
this.prodId = prodId;
this.prodName = prodDesc;
this.userId = userId;
}
我想要实现的是在查询中添加ORDER BY。当 p.prodDesc 添加到 ORDER BY 子句时,我收到错误
not a SELECTed expression 因为 p.prodDesc 不是选定字段。如果我从ProductListDTO 类中添加prodName 那么它会
报错The identification variable 'appDesc' is not defined in the FROM clause。
当我使用 ProductListDTO 构造函数时,我该怎么做ORDER BY prodDesc
【问题讨论】:
标签: jpa eclipselink jpa-2.0 jpql