2012-05-30 83 views
1

EJB查詢語言(EQL)與Hibernate查詢語言(HQL)相同嗎?EJB查詢語言與HQL

我正在閱讀Bill Burke編寫的名爲Enterprise Java Beans 3.0的書,它將它稱爲EQL。

它們實際上是一樣的東西,只有一個用於EJB,一個用於Hibernate?

謝謝

回答

2

EJB查詢語言是爲JPA實現(也稱爲JPQL)構建的標準查詢語言,如果您使用的ORM符合JPA,那麼將支持該查詢語言,因此其背後的想法是你應該能夠改變你的JPA實現而不必改變你的查詢。

另一方面,HQL是hibernate特有的,如果你不使用hibernate作爲JPA實現,那麼可能你的查詢不會工作。

2

HQL是EQL(或JPQL)的超集。它包含額外的功能和構造,但它們基本相同。還有一些HQL尚未實現的JPQL功能。

+0

Hibernate是一家經過認證的JPA提供商。因此,它通過了TCK,其中測試了供應商對JPQL解析/處理的遵從性。那麼Hibernate在JPQL中不支持什麼? –

+0

@SteveEbersole:例如,請參閱https://hibernate.onjira.com/browse/HHH-5396。 –