6

我注意到每次我尝试访问同一个表时,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: 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

4 回答 4

4

查看涵盖该主题的HHH-2448并有一个用于确定性别名生成的补丁。

于 2009-11-29T21:59:27.320 回答
1

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

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

于 2009-11-29T12:55:20.367 回答
1

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

于 2009-11-29T14:31:39.697 回答
-2

简短的回答:没有

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

于 2009-11-29T12:42:53.360 回答