请勿使用特定于 WebLogic 的 EJB 查询语言构造

此规则会检测对 WebLogic 查询语言的引用。 需要复审 WebLogic 查询语言引用并相应地对其进行转换,以在 WebSphere Traditional 和 Liberty 上使用。

<weblogic-ql> 元素指定包含对 EJB 2.0 查询语言 (EJB-QL) 并且特定于 WebLogic 的扩展的查询。 标准 EJB-QL 语言功能部件用于 ejb-jar.xml 部署描述符中,并且 WebLogic EJB-QL 扩展用于 weblogic-cmp-rdbms-jar.xml 文件中。 排序、聚集函数和子查询通常用于查询中,但是因为还可使用其他扩展,所以请始终仔细检查全部 <weblogic-ql> 元素。

WebSphere Application Server 还对 EJB-QL 语言功能进行扩展,但不是定义另一个 QL,而是由 WebSphere Application Server 向 EJB-QL 语法提供排序、子查询和聚集函数。 WebSphere Application Server 对 EJB-QL 的语法进行扩展以包含这些扩展。 因此,可以在 ejb-jar.xml 文件内的标准 <ejb-ql> 元素中使用 EJB-QL 及其扩展。

映射排序依据

排序依据 WebLogic QL 扩展是关键字,它使用 Finder 方法来指定从所作选择返回的结果的顺序。 还可按多个字段排序,并指定是以升序还是以降序顺序返回这些结果。

映射子查询和聚集函数

子查询 WebLogic QL 扩展使查询能够嵌入在主查询的 WHERE 子句内来返回数据,以供在主查询内用作条件来进一步对要检索的数据进行限制。 MAX WebLogic QL 扩展返回所指定字段的最大值。 以下示例显示子查询和聚集函数以及它至 WebSphere Application Server 的映射:

本主题中提供了有关 EJB-QL 的更多信息: