我有以下代码从Oracle数据库的单个表中执行简单查询.
entityManager.createQuery(
"SELECT a FROM " + Person.class.getSimpleName()
+ " a WHERE lower(a.firstName) = '" + firstName + "'")
.getSingleResult();
Run Code Online (Sandbox Code Playgroud)
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 <= ?
Run Code Online (Sandbox Code Playgroud)
我们的DBA建议,出于性能原因,此查询应该更简单.如何使hibernate简化查询,如下所示:
select ID, FIRSTNAME, LASTNAME from PERSONS
where lower(FIRSTNAEM) = 'john' and rownum <= 1
Run Code Online (Sandbox Code Playgroud)
谢谢