Hibernate查询 - 为什么它们如此奇怪?

时间:2014-06-03 19:45:31

标签: java sql hibernate jpa hql

我只是在看控制台而且我注意到Hibernate查询看起来很奇怪。

Hibernate: select client0_.id as id1_1_0_, client0_.address as address2_1_0_, client0_.name as name3_1_0_, client0_.client_no as client_n4_1_0_, client0_.ssn as ssn5_1_0_ from clients client0_ where client0_.id=?

Hibernate: select orders0_.CLIENT_ID as CLIENT_I5_1_0_, orders0_.id as id1_0_0_, orders0_.id as id1_0_1_, orders0_.CLIENT_ID as CLIENT_I5_0_1_, orders0_.ORDER_DATE as ORDER_DA2_0_1_, orders0_.ORDER_DESC as ORDER_DE3_0_1_, orders0_.ORDER_NO as ORDER_NO4_0_1_ from ORDERS orders0_ where orders0_.CLIENT_ID=?

这是某种HQL吗?

问候。

2 个答案:

答案 0 :(得分:4)

没有。它不是HQL - 如果你仔细阅读它,你会发现它是直接的ANSI Sql。 它有机器生成的,非人类友好的列别名,但它是sql。

答案 1 :(得分:0)

Hibernate Query Language(HQL)有助于以面向对象的方式编写查询。因此我们可以自由地从一个数据库管理系统迁移到另一个数据库管理系统。例如MySQL到Oracle DB,反之亦然。

HQL中HQL被转换为SQL。 Criteria查询也是如此。

例如:

         HQL : from Student
         SQL : select * from student