java - 如何找到hibernate和直接运行sql的查询区别?

标签 java oracle hibernate time

我有这样的查询:

 delete from tableA where fk in (select id from tableA where fk='somevalue'
 and tableA.date between date1 and date2)

当我从 TOAD 运行这个查询时,它需要将近 100 毫秒。当我使用

运行时
                   session
                .createSQLQuery(
                        "delete ....")
                .setParameter("...")
                .setParameter("...")
                .setParameter("...")
                .executeUpdate();

大约需要 30 分钟 真的查询删除 0 行。所以可能存在一些 hibernate/甲骨文问题。我怎样才能找到他们? 谢谢。

最佳答案

您可能在谈论 hibernate.show_sql property from Hibernate configurations (ctrl+f 表示“show_sql”)

将此属性设置为“true”会将使用的 SQL 打印到标准输出

关于java - 如何找到hibernate和直接运行sql的查询区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14215406/

相关文章:

java - 如何在项目中使用 2 个 RDBMS

java - 即使数据库已关闭,如何使应用服务器启动?

java - onMapReady 接收 null LatLng

Java 类型、值比较

Java EE 安全 - 应用程序客户端

sql - 甲骨文 SQL : Find each position of specific character in multi-row column without duplicates

java - 将Java连接到MySQL数据库

java - DatabaseMetaData.getTables() 返回多少列?

mysql - 如何撤销一个架构(crm)和用户(cus)中一张表的更新授权

java - org.hibernate.AnnotationException : @OneToOne or @ManyToOne on entities. Ques#tion.examId 引用了一个未知实体:long