6

同じテーブルにアクセスしようとするたびに、休止状態が同じ列に対して異なるエイリアスを生成することに気付きました。

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

とにかく、私の解決策 - 名前付きクエリで、データを明示的に選択する方法を指定します...

于 2009-11-29T14:31:39.697 に答える
1

まず、私は Oracle 9i を使用しています。

クエリが異なると、サーバーはハード パースを実行します。このようなクエリが多数ある場合は、データベース サーバーの責任が低下しています。この問題を回避するには、バインド変数を使用する必要があります。

于 2009-11-29T12:55:20.367 に答える
-2

短い答え: いいえ

なんで?
それが要点ですよね?実際のクエリ ステートメントから抽象化されます。

于 2009-11-29T12:42:53.360 に答える