是否可以在使用 Java 语言从 Hibernate 执行 UPDATE 时获取本机 SQL 查询?
例如,我有
session.update(something);
语句,我想检索一个String
(或其他)包含 UPDATE 操作后面的 SQL 查询的内容。
我想要 Hibernate “发送”到 MySQL 的有效查询。
你可以。Hibernate 正在使用 log4j,因此您必须设置适当的类别。那些是:
org.hibernate.SQL
至debug
org.hibernate.type
至trace
你有两个选择...
您可以<property name="show_sql">true</property>
在您的persistance.cfg.xml 中进行设置,但这不会显示参数中的值,只是?
您可以(我的首选)使用 SQL 分析器(如果您使用的是 MS SQL)来准确查看针对数据库运行的 SQL。
以编程方式获取查询是不可能的(或者至少在没有为特定数据库编码的情况下是不可能的):SQL 查询取决于您使用 hibernate 与之交互的数据库,并且通常不能通过 hibernate 直接访问,因为它取决于数据库驱动程序。
查看实际 SQL 语句的最佳方法是查看数据库的日志文件。