在Hibernate中为每个选择查询调用connection.getMetaData()

时间:2014-02-05 06:45:16

标签: java sql oracle hibernate jdbc

我正在使用org.hibernate.SQLQuery在我的java应用程序中执行select查询。代码如下。

Query query=session.createSQLQuery("query");
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List<Map<String,Object>> aliasToValueMapList=query.list();

问题是,oracle AWR报告显示我执行的每个选择查询都会触发另一个查询。

SELECT NULL AS table_cat, o.owner AS table_schem, o.object_name AS table_name, o.object_type AS 
table_type, NULL AS remarks FROM all_objects o WHERE o.owner LIKE :1 ESCAPE '/' AND o.object_name 
LIKE :2 ESCAPE '/' AND o.object_type IN ('xxx', 'TABLE') ORDER BY table_type, table_schem, table_name

任何人都可以解释为什么会发生这种情况,我怎么能避免这种情况(我想避免这种情况,因为这是报告中列出的CPU消耗最多的查询)?

1 个答案:

答案 0 :(得分:0)

我能找到这个确切地解决我的问题。我将测试链接中给出的建议。一旦找到正确的解决方案,我将在此处更新结果。

How to avoid this very heavy query that slows down the application?