【发布时间】:2018-03-07 11:39:34
【问题描述】:
我需要知道数据库上正在执行什么查询,以便检查是否可以改进它。
以下代码用于创建查询:
TypedQuery<OrderItem> orderItemTypedQuery = typedQuery.setParameter(OrderItemCriteria.CUSTOMER_ID_PARAM, criteria.getCustomerId());
String sqlQuery=orderItemTypedQuery.unwrap(org.hibernate.Query.class).getQueryString();
显示以下查询:
select generatedAlias0 from OrderItem as generatedAlias0 left join generatedAlias0.order as generatedAlias1 where ( generatedAlias0.status in (:param0) ) and ( generatedAlias0.hidden=:param1 ) and ( generatedAlias0.customer.id=:param2 ) and ( generatedAlias0.linkedOrderItem is null ) order by generatedAlias1.id desc, generatedAlias0.id desc
上面的查询不是本机查询(未设置参数),我正在尝试查找数据库上正在执行的内容,以便我可以检查查询是否很慢并且需要优化。
谢谢
【问题讨论】:
-
最新版本的Hibernate,需要将class改为org.hibernate.query.Query.class