问题标签 [show-sql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - NHibernate 没有将 SQL 输出到控制台
我已将 NHibernate 配置为将它生成的 SQL 输出到控制台。我已将以下内容添加到包含我想从 NUnit 运行的集成测试的 DLL 的 app.config 中:
但是,SQL 仍然没有输出到 Console.Out。谁能想到我可能需要设置的另一个设置来查看我的 NHibernate 查询产生的 SQL?
eclipse - 在 Eclipse 的 toplink 中显示生成的 SQL
我在 Eclipse 中使用 EclipseLink 库(在开发时)并部署在 TopLink 上,我需要显示生成的 sql 语句。
我正在使用以下persistence.xml:
我知道它应该显示生成的 sql 语句,但事实并非如此。
jpa - 如何在没有 Hibernate Envers 的情况下审计 JPA
我需要为我的 Java Web App创建一个审计模块。我使用 EclipseLink,而不是 Hibernate(不能使用 Envers)。我搜索了很多方法来获取 JPA 正在执行的 SQL 或 JPQL,所以我可以记录如下内容:
实际上,我会将这些信息保存到历史数据库的表中。因此,我可以随时轻松检索此信息。这就是为什么“ SHOW SQL ”参数对我来说还不够。我真的需要 SQL 字符串,所以我可以在我的源代码中操作它。
我在 JPA 规范中发现了EntityListener功能,并认为这是放置我的日志记录代码的理想场所。例如,postUpdate 方法可以记录对象的更新时间。但我的问题是我无法执行 SQL。
这是我的意思的一个例子:
但是“object.getSQL()”不存在。那么如何获取 SQL 语句呢?
如果有人能指出我正确的方向,我将不胜感激!
hibernate - @NamedQuery 中应用的 TOP 子句
我
@NamedQuery(name="CustomerMarket.findByMarketId", query="SELECT DISTINCT c.marketid FROM CustomerMarket c WHERE c.marketid LIKE :mask")
在我的类 CustomerMarket 定义中命名了查询。
我想获取 350_000 个结果中的前 1_000 个,所以我应用了 setMaxResult:
执行此查询后,我检查了 server.log 并找到了这个
我有正确的数据,前 1_000 条记录,但我想知道是否应用了 TOP 限制以及在哪里。
这个 TOP 子句是如何处理的?
- TOP 应用于 Hibernate 使用的可调用语句,这不会显示在日志中
- TOP 在从 DB 接收结果并在 Java 端过滤数据后应用
- 或者别的什么
我已经设置了 persistence.xml 和 log4j.properties 来显示几乎所有内容,但我认为没有问题,因为我有 SQL 脚本。
编辑:我在两种情况下(有和没有 setMaxResults)都对性能进行了一些测量,并得到了以下时间:
在没有 TOP 的第一种情况下,我每次选择的平均时间消耗为 1400 毫秒。在实施 TOP 的第二种情况下,我的平均时间消耗约为 150 毫秒。
也有人对我说,这个 TOP 实现可能依赖于使用的 Hibernate 方言(我们使用的是 Sybase)。并且出现在日志中的选择与发送到数据库的选择完全相同。但是在这种情况下,将 350k 结果从结果集(或结果如何存储在 Hibernate 会话中)转换为没有任何元数据的结构 List 需要这么长时间是正常的吗?我可以想象在内部它被转换为:
这似乎没有那么复杂,为什么会有这个时差。可能我很天真,因为 Hibernate 是一个具有很多特性的复杂框架。:-D
c# - 如何使用 OleDb、C# 执行 SHOW 语句?
尝试按照 c# 代码获取数据库中的所有表名,但我收到一条错误消息:
“System.Data.OleDb.OleDbException (0x80040E14):无效的 SQL 语句;应为“DELETE”、“INSERT”、“PROCEDURE”、“SELECT”或“UPDATE”...”
如何使用 OleDb 执行此类命令?
谢谢 :)
mysql - 在 mySQL 显示语句中使用“不喜欢”
我有一个根据用户在前面选择的表名dropdownlist
填充的。我正在使用以下查询column names
dropdown
SHOW columns from abcTableName LIKE '%name'
哪个有效
我希望所有人都包含除几列之外的所有列名。因此,我想要这样的查询
这是行不通的。甚至
不工作
目前我运行两个循环来获取列名-outer loop
传递表名并将inner loop
参数传递给需要大量时间的查询。我想优化它。
有人可以建议吗?
java - Sl4j 不记录来自 JPA 的 sql 语句
我正在使用 JPA、Hibernate 和 Sl4j 开发一个应用程序。我可以让我的 sl4j 记录 sql 语句。
这是我的代码:
持久性.xml
log4j.properties
但是日志中没有sql语句。既不在控制台中,也不在文件中。