Oracleデータベースの単一のテーブルからの単純なクエリを実行する次のコードがあります。
entityManager.createQuery(
"SELECT a FROM " + Person.class.getSimpleName()
+ " a WHERE lower(a.firstName) = '" + firstName + "'")
.getSingleResult();
Hibernateは次のSQLを生成します:
select
*
from
( select
person0_.id as id75_,
person0_.FIRSTNAME as FIRSTNAME75_,
person0_.LASTNAME as LASTNAME75_
from
PERSONS person0_
where
lower(person0_.FIRSTNAME)='john' )
where
rownum <= ?
DBAは、パフォーマンス上の理由から、このクエリはより単純にする必要があることを示唆しています。次のようにクエリを単純化するために休止状態を作成するにはどうすればよいですか?
select ID, FIRSTNAME, LASTNAME from PERSONS
where lower(FIRSTNAEM) = 'john' and rownum <= 1
ありがとう