当前位置: 首页 > 面试题库 >

Java 如何查看JPA发出的SQL查询?

鲜于凯康
2023-03-14
问题内容

当我的代码发出这样的调用时:

entityManager.find(Customer.class, customerID);

如何查看此调用的SQL查询?假设我无权访问数据库服务器来分析/监视调用,是否可以在IDE中记录或查看JPA调用发出的相应SQL查询?我要使用jTDS驱动程序反对SQL Server 2008 R2。


问题答案:

日志记录选项是特定于提供程序的。您需要知道使用哪种JPA实现。

  • Hibernate:
<property name = "hibernate.show_sql" value = "true" />
  • EclipseLink:
<property name="eclipselink.logging.level" value="FINE"/>
  • OpenJPA:
<property name="openjpa.Log" value="DefaultLevel=WARN,Runtime=INFO,Tool=INFO,SQL=TRACE"/>
  • DataNucleus:

将日志类别设置DataNucleus.Datastore.Native为一个级别,例如DEBUG



 类似资料:
  • 问题内容: 有没有办法我可以打印Django ORM生成的查询? 说我执行以下语句: 如何查看生成的SQL查询? 问题答案: 每个QuerySet对象都有一个属性,你可以将其记录或打印到stdout以进行调试。

  • 问题内容: 有没有办法观察将由生成的SQL语句? 例如,我有这个:是否 可以查看其基础的原始SQL? 问题答案: 光滑2.X: 您可以按照Slick文档中所示打印查询语句: 对于其他类型的报表看,和。 光滑的3.X: 文件。

  • 问题内容: 我想查看发送到PostgreSQL服务器的SQL命令,因为我需要检查它们是否正确。我特别对表创建命令感兴趣。 例如,ActiveRecord(Ruby)将其SQL语句打印到标准输出。Node.js / ActionHero.js和Sequelize.js也可能吗? 问题答案: 您可以在初始化sequelize时传递日志记录选项,该选项可以是函数或console.log。 如果只想查看表

  • 问题内容: 有没有一种方法可以显示执行查询时Django正在运行的SQL? 问题答案: 请参阅文档FAQ:“如何查看Django正在运行的原始SQL查询? ” 包含SQL查询的列表: 查询集还具有包含要执行的查询的属性: 请注意,查询的输出不是有效的SQL,因为: “ Django实际上从未插值参数:它将查询和参数分别发送到数据库适配器,后者执行适当的操作。” 来自Django错误报告#17741

  • 我点击 build.gradle里 dependencies 块中的 { implementation } IDEA跳转到: 我点击 build.gradle 里的关键字 dependencies { IDEA跳转到: 这2个文件只有接口,都不是实现源码,可我的gradleHome是all 版本的,不是bin 版本的,怎么还看不到源码呢 ?

  • 问题内容: 我如何跟踪Linux服务器上发生的MySQL查询? 例如,我希望设置某种侦听器,然后请求一个网页并查看引擎执行的所有查询,或者仅查看在生产服务器上运行的所有查询。我怎样才能做到这一点? 问题答案: 您可以运行MySQL命令以查看在任何给定时间正在处理哪些查询,但这可能无法实现您所希望的。 获取历史记录而不必使用服务器修改每个应用程序的最佳方法可能是通过触发器。您可以设置触发器,以便每次