In the previous post we saw how query execution works in Hibernate and we created a simple relationship that we could use to test our different HQL queries.
Continuing from the last example "from Entity", I decided to try out aliases.
Continuing from the last example "from Entity", I decided to try out aliases.
final Session session = sessionFactory.openSession(); Query q = session.createQuery("from Master as master"); List<Master> masters = q.list(); System.out.println(masters);The logs indicate the SQL query as below:
3531 [main] DEBUG org.hibernate.SQL - /* from Master as master */
select master0_.ID as ID1_, master0_.DATA as DATA1_ from ENTITY_MASTER master0_As can be seen the generated query is more or less same as a select query without the alias. I had expected that the generated SQL would use my supplied alias. But that is not the case. From the hibernate docs:
In order to refer to the Cat in other parts of the query, you will need to assign an alias. For example: from Cat as cat This query assigns the alias cat to Cat instances, so you can use that alias later in the query. The as keyword is optional. You could also write: from Cat cat Multiple classes can appear, resulting in a cartesian product or "cross" join. from Formula, Parameter from Formula as form, Parameter as param It is good practice to name query aliases using an initial lowercase as this is consistent with Java naming standards for local variables (e.g. domesticCat).Thus the alias we use is only for use in our HQL and does not reflect in the SQL query generated.
No comments:
Post a Comment