选择非空值或默认值

时间:2021-07-26 12:07:41

标签: jpa spring-data jpql

以下代码不能正常工作:

@Query("SELECT CASE WHEN item.product IS NOT NULL THEN item.product.name ELSE 'Default' END FROM MyItem item")
List<Object[]> findProductNames();

我除了在商品有产品集时接收产品名称列表,如果商品没有产品集则接收字符串 "Default"
我得到的是一个产品名称列表,根本没有一个 "Default" 字符串。当然,我针对有产品的项目和没有产品的项目测试了查询。

如果我将查询更改为以下内容(product.name 替换为 nonNullProperty.name):

@Query("SELECT CASE WHEN item.product IS NOT NULL THEN item.nonNullProperty.name ELSE 'Default' END FROM MyItem item")

然后我得到了有效的名称(nonNullProperty 的)以及一些 "Default" 值。

有谁知道幕后发生了什么(休眠)?

问候

0 个答案:

没有答案
相关问题