文档首页/ 工业数字模型驱动引擎/ 常见问题/ 数据建模引擎相关问题/ 使用JDK 17版本应用运行态时,服务编排存在哪些约束与限制?
更新时间:2025-02-24 GMT+08:00
分享

使用JDK 17版本应用运行态时,服务编排存在哪些约束与限制?

工业数字模型驱动引擎-数据建模引擎(xDM Foundation,简称xDM-F)支持使用JDK(Java Development Kit) 17的开发编译、生成代码包等能力进行应用发布。当您完成JDK 17版本的应用发布并将该版本的应用部署至数据建模引擎运行服务生成应用运行态后,您在应用运行态生成的数据与历史使用JDK 8版本进行应用发布和部署的应用运行态数据一致,且可以正常使用xDM-F支持的功能。但由于应用运行态是基于JDK 17版本的JVM(Java Virtual Machine)运行的,在JDK 17版本的应用运行态中使用服务编排管理功能时,需要注意JDK 17版本的最新编码规则。

JPQL/SQL语句相关约束与限制

  • 使用JPQL(Java Persistence Query Language)进行更新或查询操作时,不允许使用可选的“from”关键字。

    例如,存在一个数据模型“MyEntity”,您想将所有属性“attr”设置为“null”

    在JDK 8版本的应用运行态中,您可以使用以下SQL语句。

    update from MyEntity e set e.attr=null

    使用JDK 17版本后,调用update语句时,需要将update后面的from删除。即:

    update MyEntity e set e.attr=null
  • 使用JPQL进行查询时,不支持使用列名来构建查询。如果存在实体属性的字段名与列名不一致,需要使用字段名进行查询。
  • JPQL不支持直接比较对象与ID,包括根对象(如where myentity=:param)和关联对象(如where myentity.association=:param)。

    如需使用真正的参考对象ID进行比较,可以直接在JPQL查询中使用这个字段,例如where myentity.id = :param

  • 在执行原生SQL查询并返回count()函数的结果时,返回类型为Long,而不是BigInteger
  • JPQL不再支持集合伪属性,例如.size、.elements、.indices、.index、.maxindex、.minindex、.max element、.minelement。如果您希望在JPQL中使用集合伪属性,需要参考如下示例进行修改。
    mycollection.size         ⇒   size(mycollection)
    mycollection.elements     ⇒   value(mycollection)
    mycollection.indices      ⇒   index(mycollection) (for lists) 或者 key(mycollection) (for maps)
    mycollection.maxindex     ⇒   maxindex(mycollection)
    mycollection.minindex     ⇒   minindex(mycollection)
    mycollection.maxelement   ⇒   maxelement(mycollection)
    mycollection.minelement   ⇒   minelement(mycollection)

相关文档