以下代码不能正常工作:
@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"
值。
有谁知道幕后发生了什么(休眠)?
问候