我正在尝试使用 Hibernate createNativeQuery 获取 1000 行。该查询包含两个连接。当我在 SQL 开发人员中执行相同操作时,我看到响应在不到 400 毫秒内出现,但从代码中需要 20 秒才能得到结果。
桌子
员工 - id、姓名、country_id、dept_id
国家 - id、country_name、office_count、inflation_rate
部门 - id、部门名称、经理
String queryStr = "Select e.id as id, e.name as empName, c.country_name AS countryName,
d.dept_name AS deptName FROM owner.Employee AS e LEFT OUTER JOIN owner.Country c
ON e.country_id = c.id LEFT OUTER JOIN owner.Dept AS d ON e.country_id = d.id";
List<Object[]> rows = this.getSession().createNativeQuery(queryStr).setMaxResults(1000)
.addScalar( "id", StringType.INSTANCE )
.addScalar( "empName", StringType.INSTANCE )
.addScalar( "countryName", StringType.INSTANCE )
.addScalar( "deptName", StringType.INSTANCE )
.list();
Hibernate 正在执行的可能导致此延迟的附加处理是什么?有什么办法可以优化代码吗?