【发布时间】:2021-09-30 08:37:50
【问题描述】:
有没有办法将 case builder 放入工厂表达式中?
public List<StockRecoveryDTO> FindTest(@Param("id_product") Long id_product, @Param("date") String date) {
JPAQuery<StockRecoveryDTO> stockRecoveryDTOJPQLQuery = new JPAQuery<>(entityManager);
QManagement management = QManagement.management;
QProduct product = QProduct.product;
FactoryExpression<StockRecoveryDTO> fe = new QStockRecoveryDTO(
product.id_product,
management.date,
product.quantity_product,
management.action_description,
management.id_action,
management.quantity
);
这个:
NumberExpression<Integer> numberExpression = new CaseBuilder()
.when(management.action_description.eq("import"))
.then(product.quantity_product)
.otherwise(product.quantity_product.negate()).sum();
进入这个:
return stockRecoveryDTOJPQLQuery.select(fe)
.from(management)
.innerJoin(product)
.on(management.product_id.eq(product))
.where(product.id_product.eq(id_product).and(management.date.eq(date)))
.groupBy(management.product_id)
.fetch();
}
}
Target --> 如何将我的案例生成器放入工厂表达式中,我找不到任何相关文档。或者也许还有其他更好的方法?
【问题讨论】:
标签: java spring jpa hql querydsl