【问题标题】:Convert Hibernate persistable object to SQL Insert Statement将 Hibernate 持久对象转换为 SQL 插入语句
【发布时间】:2010-08-10 21:16:47
【问题描述】:

有没有办法使用 Hibernate 将 Persistable 对象转换为 SQL 插入语句?这必须是可能的,因为这就是 Hibernate 在幕后所做的,但我只需要将 SQL Stmt 写到日志文件中,以便在数据库出现故障并且保存 Hibernate 对象失败的情况下进行错误处理。

【问题讨论】:

  • 仅仅因为 Hibernate 做了它 - 生成 SQL 语句 - 在幕后并不意味着你正在寻找的东西得到支持。 Hibernate 的目标是在 SQL 数据库中管理对象的生命周期;它不是 SQL 生成器。
  • 您需要一个 jdbc 代理驱动程序,这个问题本质上是 stackoverflow.com/questions/3403361/… 的副本

标签: java hibernate log4j


【解决方案1】:

这是一个内置功能。你可以配置休眠日志来做到这一点:

log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER
log4j.additivity.org.hibernate.SQL=false

see here.
编辑:如果您想查看参数值,您可以使用this。我没试过,但如果有用,请发表您的经验。

【讨论】:

  • 但这给了我带有“?”的 PreparedStatement 格式的 SQL 语句而不是参数。我正在寻找可以将准备执行的 SQL 写入日志的东西,然后可以将其拾取并执行。
  • 我不会真正将其称为“内置功能”,因为它只是出于调试目的而记录的内容。一个内置功能会让 Hibernate 以编程方式公开此功能供您访问。
  • +1 用于 P6Spy 链接。这应该显示具有实际值的语句。
猜你喜欢
  • 2012-03-19
  • 2023-03-09
  • 2022-06-11
  • 2012-12-25
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
相关资源
最近更新 更多