Eclipse NVL函数与EclipseLink(版本2.1.3)中的JQPL等效?

Ibr*_*ram 2 java oracle function eclipselink

我这样做JPQL查询

SELECT e 
  FROM Expediente e 
 WHERE e.fechaBaja is null 
 ORDER BY e.idSituacion ASC, 
          e.idExpediente ASC
Run Code Online (Sandbox Code Playgroud)

但是当e.idSituacion为null时,eclipseLink不会返回此注册表.

我怎么能用oracle函数做这个查询nvl?EclipseLink 2.1.3是否支持此功能?

SELECT  nvl(e.idSituacion,' ')  
  FROM Expediente e 
 WHERE e.fechaBaja is null 
 ORDER BY e.idSituacion ASC, 
          e.idExpediente ASC
Run Code Online (Sandbox Code Playgroud)

要么

SELECT e 
  FROM Expediente e 
 WHERE e.fechaBaja is null 
   and nvl(e.idSituacion,' ') 
 ORDER BY e.idSituacion ASC, 
       e.idExpediente ASC
Run Code Online (Sandbox Code Playgroud)

谢谢.

Pet*_*zki 9

合并

我不确切地知道它会如何帮助你,但你可以使用COALESCE函数:http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Functions

(这与Oracle 类似NVL,但是是ANSI标准.)NVLCOALESCE

订购

随着ORDER BY e.idSituacion ASC空值将在结果的结尾.

如果您想先获得空值,可以使用以下NULLS FIRST子句:

ORDER BY e.idSituacion ASC NULLS FIRST

(仅来自Eclipselink 2.4)