Java Spring JPA查询-替换结果集中的负值

Java Spring JPA查询-替换结果集中的负值,java,spring-boot,spring-data-jpa,Java,Spring Boot,Spring Data Jpa,我正在用SpringDataJPA开发一个SpringBoot应用程序。我正在使用自定义JPQL查询来获取所需的数据 以下是我的方法存储库: /** * SELECT sku, SUM(real_allocation - logical_allocation) * FROM stock * WHERE warehouse_brand = '?' * GROUP BY (warehouse_brand, sku); */ @Query(value = "SELECT

我正在用SpringDataJPA开发一个SpringBoot应用程序。我正在使用自定义JPQL查询来获取所需的数据

以下是我的方法存储库:

/**
  * SELECT sku, SUM(real_allocation - logical_allocation)
  * FROM stock
  * WHERE warehouse_brand = '?'
  * GROUP BY (warehouse_brand, sku);
  */

@Query(value = "SELECT new it.reply.retail.oms.common.api.inventory.CumulativeInventoryItem " +
               "(s.pk.sku, SUM(s.realAllocation - s.logicalAllocation)) " +
               "FROM Stock s WHERE s.pk.whsCode IN :warehouses GROUP BY (s.pk.sku)")
Page<CumulativeInventoryItem> getCumulativeInventory(List<String> warehouses, Pageable pageable);
有时,我获得的结果集包含
cumulativeQty
属性的负值,需要将其替换为0

是否可以使用即席查询替换这些值,或者我需要在从JPA方法返回结果集后替换它们?

根据以下内容:

在这种情况下,可以使用ELSE组合

你能试试吗

SUM(CASE WHEN (s.realAllocation - s.logicalAllocation < 0) THEN 0 ELSE (s.realAllocation - s.logicalAllocation)))
SUM(CASE WHEN (s.realAllocation - s.logicalAllocation < 0) THEN 0 ELSE (s.realAllocation - s.logicalAllocation)))
SUM(s.realAllocation - s.logicalAllocation)