【问题标题】:Oracle NVL function equivalent in JQPL in EclipseLink (Version 2.1.3)?EclipseLink(版本 2.1.3)中 JQPL 中的 Oracle NVL 功能等效?
【发布时间】:2012-11-20 15:46:45
【问题描述】:

我做这个 JPQL 查询

SELECT e 
  FROM Expediente e 
 WHERE e.fechaBaja is null 
 ORDER BY e.idSituacion ASC, 
          e.idExpediente ASC

但当e.idSituacion 为空时,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

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

谢谢。

【问题讨论】:

    标签: java oracle function eclipselink


    【解决方案1】:

    结合

    我不知道它对你有什么帮助,但你可以使用 COALESCE 函数:http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Functions

    (这类似于NVL,但NVL 是Oracle 特定的,COALESCE 是ANSI 标准。)

    订购

    ORDER BY e.idSituacion ASC 的 null 值将位于结果的末尾。

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

    ORDER BY e.idSituacion ASC NULLS FIRST

    (仅来自 Eclipselink 2.4)

    【讨论】:

    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2018-02-20
    相关资源
    最近更新 更多