gpt4 book ai didi

java - Hibernate 4.3 显示 SQL 参数

转载 作者:搜寻专家 更新时间:2023-10-31 20:28:34 24 4
gpt4 key购买 nike

我将 log4j2 与 slf4j 和 hibernate 4.3.1 一起使用。我无法显示 SQL 查询的参数。无论如何我都没有找到显示这些(SQL 查询显示得很好但没有参数)。这是我在 persistence.xml 中指定的内容:

<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="xxxxx" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="hibernate.archive.autodetection" value="class" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>
<property name="hibernate.query.factory_class"
value="org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory" />
<property name="max_fetch_depth" value="2" />
<property name="hibernate.jdbc.batch_size" value="100" />
</properties>
</persistence-unit>

我已经在我的 log4j2.xml 中定义了它:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG" verbose="true">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n" />
</Console>
<File name="MyFile" fileName="test.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<logger name="org.hibernate.SQL" level="DEBUG" additivity="false">
<AppenderRef ref="STDOUT" />
<AppenderRef ref="MyFile" />
</logger>
<logger name="org.hibernate.type" level="TRACE" additivity="false">
<AppenderRef ref="STDOUT" />
<AppenderRef ref="MyFile" />
</logger>
<Root level="TRACE">
<AppenderRef ref="STDOUT" />
<AppenderRef ref="MyFile" />
</Root>
</Loggers>
</Configuration>

最佳答案

首先,确保类路径中有 log4j-core-2.0、log4j-api-2.0 和 log4j-1.2-api-2.0 jar。

接下来,JBoss 对 Log4J2 的支持是相当新的。您可能需要 JBoss Logging 3.1.4 才能使用 Log4J2(请参阅 JBLOGGING-94)。从 JBoss Logging 3.2 开始,性能将得到改进(请参阅 JBLOGGING-95 ),并且您可以省略 log4j-1.2-api-2.0 bridge jar。

请注意当前的 JBoss-Logging Beta1 (3.2.0.Beta1) 在记录时有一个 NPE:JBLOGGING-107 .因此,可能需要使用 org.jboss.logging.provider 系统属性(请参阅 org.jboss.logging.LoggerProviders)告诉 hibernate 使用 slf4j API。

关于java - Hibernate 4.3 显示 SQL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com