与oracle sql developer相比,Hibernate执行sql查询需要更多时间

时间:2014-08-22 13:01:41

标签: java sql oracle hibernate

我有查询,在oracle sql开发人员中执行需要几毫秒,同样的查询通过hibernate大约需要2分钟。我设置show_sql = true但没有发现任何线索。 以下是详细信息 -

查询 -

select field1 from table1 t1 
join table2 t2 on t1.id = t2.id 
where t2.status = 'SomeValue';

Hibernate查询 -

Criteria criteria = getSession().createCriteria(Table1ClassName.class);
criteria.createAlias("table2", "ts", CriteriaSpecification.INNER_JOIN);
criteria.add(Restrictions.eq("ts.status", "SomeValue"));
criteria.setProjection(Property.forName("field1"));
return criteria.list();

生成的sql -

select
        this_.field1 as y0_ 
    from
        table1 this_ 
    inner join
        table2 ts1_ 
            on this_.ID=ts1_.ID 
    where
        hs1_.STATUS='SomeValue';

查询返回大约5000条记录。是否将数据转换为java对象需要时间。 任何帮助表示赞赏..

0 个答案:

没有答案