JPA,是特定于查询提示的供应商吗?

时间:2016-06-02 17:15:36

标签: java jpa java-ee

是否有JPA - 供应商中立 - 可以使用的查询提示?在谷歌搜索查询提示期间,每次提及它都是特定于供应商的查询提示。

来自doc

  

设置查询属性或提示。提示元素可用于   指定查询属性和提示。由此定义的属性   规范必须由提供商遵守。供应商特定提示   必须以静默方式忽略提供程序无法识别的内容。   便携式应用程序不应该依赖于标准超时提示。   取决于使用的数据库和使用的锁定机制   提供者,可能会或可能不会观察到此提示。

我不确定我是否正确理解这一点。这是否意味着有供应商中立的查询提示或没有?如果是这样,我在哪里可以找到描述这些的列表?

1 个答案:

答案 0 :(得分:3)

根据Eclipse网站上发现的文章(http://www.eclipse.org/eclipselink/documentation/2.6/concepts/queries006.htm),查询提示是特定于供应商的。

Eclipse声明:“查询提示的定义是特定于供应商的。以下部分描述了JPA查询提示和EclipseLink查询提示”

本文继续介绍两种查询提示(JPA和EclipseLink)的具体实现细节。

对Apache网站(http://openjpa.apache.org/builds/2.3.0/apache-openjpa/docs/manual.html#jpa_hints_named)的进一步研究似乎证实了查询提示是特定于供应商的。

第1.8节查询提示......

“忽略了特定数据库无法处理或OpenJPA未知的提示.OpenJPA已知但提供不兼容值的提示将导致抛出IllegalArgumentException。”

根据我所阅读的内容以及您在问题中链接的内容,我不相信存在“供应商中立”的查询提示。预期的行为是,如果供应商不支持指定的查询提示,则只会忽略它。