Hibernate,别名

时间:2009-11-29 12:36:35

标签: java hibernate orm alias

我注意到每次尝试访问同一个表时,hibernate会为相同的列生成不同的别名:

Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Hibernate: select person0_.id as id4_0_, person0_.nam as nam4_0_, person0_.fam as fam4_0_, person0_.otc as otc4_0_ from web_db.Person person0_ where person0_.id=?

有没有办法让hibernate为相同的查询生成相同的别名?例如:

Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?

4 个答案:

答案 0 :(得分:4)

查看涵盖此主题的HHH-2448,并提供确定性别名生成的补丁。

答案 1 :(得分:1)

首先,我使用的是Oracle 9i。

不同的查询会导致服务器进行硬解析。如果有许多此类查询,则数据库服务器责任正在下降。我们必须使用绑定变量来避免这个问题。

答案 2 :(得分:1)

无论如何,我的解决方案 - 命名查询,我将指定如何明确选择数据...

答案 3 :(得分:-1)

简短回答:不,

为什么?
这就是重点不是吗?您从实际的查询语句中抽象出来。