此JPA查询
@Query("SELECT e FROM MyEntity e WHERE (e.field1 IN :collectionOfField1s AND TRIM(LOWER(e.status)) <> 'deleted')")
应该返回e.field1 IN:collectionOfField1s和e.status&lt;&gt;的所有记录。 &#39;删除&#39;正如所料,但遗憾的是它没有返回e.status仍然 null (尚未填充)的记录。我想知道我需要更改什么,以便它返回所有记录,其中e.field1 IN:collectionOfField1s和e.status&lt;&gt; &#39;已删除&#39;,包括e.status为空的那些。
我很感激你的帮助。
谢谢
答案 0 :(得分:2)
Null在数据库中是一个非常具体的东西,你需要以不同的方式对待它。你至少有两种方法可以达到你想要的效果。第一个是指定NULL是期望值,如下所示:
SELECT e
FROM MyEntity e
WHERE e.field1 IN :collectionOfField1s
AND (TRIM(LOWER(COALESCE(e.status, 'deleted'))) <> 'deleted')
另一种方法是使用一个名为COALESCE的特殊函数,如下所示:
URLSession.shared.dataTask
在这种情况下,如果找到空值,则删除&#39;应该假定价值。