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

使用Hibernate时如何打印带有参数值的查询字符串

况承福
2023-03-14
问题内容

在Hibernate中是否可以用实际值而不是问号打印生成的SQL查询?

如果Hibernate API无法实现,您将如何建议使用实值打印查询?


问题答案:

您需要为以下类别启用日志记录:

  • org.hibernate.SQL -设置debug为在执行所有SQL DML语句时记录它们
  • org.hibernate.type-设置为trace记录所有JDBC参数

因此,log4j配置如下所示:

# logs the SQL statements
log4j.logger.org.hibernate.SQL=debug

# Logs the JDBC parameters passed to a query
log4j.logger.org.hibernate.type=trace

第一个等效于hibernate.show_sql=truelegacy
属性,第二个则 打印绑定参数。

另一个解决方案(基于非hibernate)将使用JDBC代理驱动程序,如P6Spy。



 类似资料:
  • 问题内容: 在Hibernate中是否可以用实际值而不是问号打印生成的SQL查询? 如果Hibernate API无法实现,您将如何建议使用实值打印查询? 问题答案: 您需要为以下类别启用日志记录: -设置为在执行所有SQL DML语句时记录它们 -设置为记录所有JDBC参数 因此,log4j配置如下所示: 第一个等效于 属性,第二个则打印绑定参数。 另一个解决方案(基于非hibernate)是使

  • 我们使用SQL Server数据库。当试图使用27GB内存在具有100M条记录的表上运行查询时,Hibernate会将查询(无论是

  • 我的log4j.xml有以下内容: 即使在设置了这些配置之后,我仍然没有看到包含值的精确的select查询。我还有一种感觉,日志记录级别实际上不起作用,因为我没有看到任何来自Hibernate的过度日志记录。此外,我多次构建maven只是为了确保构建了新属性。这是日志的外观:

  • 问题内容: 如何将hibernate参数设置为“空”?例: 就我而言,状态字符串可以为null。我已经调试了它,然后hibernate,然后生成了这样的SQL字符串/查询..... 但这在MYSQL中不起作用,因为正确的SQL语句必须为“ ”(Mysql无法理解status=null并对此进行评估为false,因此根据我已阅读的mysql文档,查询将不会返回任何记录…) 我的问题: 为什么不将空字

  • 问题内容: 我有一个HTTP客户端(目前)的Node.js应用程序。所以我在做: 这似乎是完成此任务的一种好方法。但是,我有些沮丧,我必须执行此步骤。这应该由一个公共库封装,但是我还没有看到它存在于node的库中,而且我不确定哪个标准的npm包可以完成它。有没有一种合理使用的更好的方法? url.format方法节省了构建自己的URL的工作。但理想情况下,请求的级别也应高于此级别。 问题答案: 检

  • 问题内容: 从服务器重定向后,如何在我的routes.jsx文件中定义路由以从Twitter的单点登录过程生成的URL 捕获参数值? 我尝试使用以下路由配置,但没有捕获上述参数: 问题答案: 反应路由器v3 React Router已经为您解析了位置并将其作为道具传递给RouteComponent。您可以通过访问查询(在URL中的?之后)部分 如果要查找路径参数值(在路由器内部用冒号(:)分隔),