繁体   English   中英

EclipseLink的COLUMN和TABLE函数是否独立于DBMS?

[英]Are EclipseLink's COLUMN and TABLE functions DBMS independent?

如果您阅读此EclipseLink的《 用户/开发人员指南》 ,则不会提及TABLE和COLUMN函数是否独立于数据库,并且我不确定是否应该使用它们,因为我正在使用某些oracle,postgres和sqlserver数据库。

这些功能DBMS是否独立?

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)。

这是什么意思

  • COLUMN操作以允许在非映射列上进行查询,以及
  • 允许对非映射表进行查询的TABLE操作?

EQL是EclipseLink的基本ORM实现的扩展,为您提供了一种查询对象及其对应数据库列的元信息的增强方式。 这是针对每个供应商特定实现的-取决于配置的JPA方言 -或尽可能与供应商无关。

本质上,就不同的DBM系统而言,使用这些功能应该是安全的。 尽管如此,您仍将一劳永逸地将您的应用程序绑定到EclipseLink,从而避免了自己切换到不同的JPA提供程序(例如Hibernate)的可能性,以防您想尝试或出于性能考虑。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM