如果您阅读此 EclipseLink的 User-/Developer Guide,则不会提及TABLE和COLUMN函数是否独立于数据库,并且我不确定我是否应该考虑使用它们正在使用一些oracle,postgres和sqlserver数据库。
这些功能与DBMS是否独立?
答案 0 :(得分:2)
UserGuide的第一句话提供了重要的信息:
Java持久性查询语言(JPQL)是JPA定义的查询语言。 JPQL与SQL类似,但对对象,属性和关系(而不是表和列)进行操作。
严格来说,就是JPQL != SQL
。 JPQL是一种查询语言,目的是在对象关系映射器(ORM)的环境中查询对象。在这种情况下,ORM抽象实际的DBMS(“ SQL世界”)。 EclipseLink完全实现了JPA规范文档(版本1、2.0、2.1、2.2)中定义的标准JPQL。
此外,EclipseLink
为标准JPA JPQL提供了许多扩展。这些扩展提供对其他数据库功能的访问,其中许多功能是SQL标准的一部分,提供对本机数据库功能的访问,并提供对EclipseLink特定功能的访问。 EclipseLink JPQL扩展被称为EclipseLink查询语言(EQL)。
这对
意味着什么EQL 是EclipseLink的基本ORM实现的扩展,为您提供了一种查询对象及其对应数据库列的元信息的增强方式。这是针对每个供应商特定实现的-取决于配置的 JPA方言-或尽可能与供应商无关。
本质上,就不同的DBM系统而言,使用这些功能应该是安全的。尽管如此,您仍将一劳永逸地将应用程序绑定到EclipseLink,从而避免了切换到其他JPA提供程序的可能性。 Hibernate,以备不时之需或出于性能考虑。
希望有帮助。