2012-05-30 82 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。 –