diff --git a/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmConfig.java b/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmConfig.java
index d232028661602..97cef720a5950 100644
--- a/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmConfig.java
+++ b/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmConfig.java
@@ -284,6 +284,14 @@ public static class HibernateOrmConfigLog {
@ConfigItem(defaultValue = "false")
public boolean sql;
+ /**
+ * Logs SQL bind parameter.
+ *
+ * Setting it to true is obviously not recommended in production.
+ */
+ @ConfigItem(defaultValue = "false")
+ public boolean bindParam;
+
/**
* Whether JDBC warnings should be collected and logged.
*/
@@ -291,7 +299,7 @@ public static class HibernateOrmConfigLog {
public Optional jdbcWarnings;
public boolean isAnyPropertySet() {
- return sql || jdbcWarnings.isPresent();
+ return sql || bindParam || jdbcWarnings.isPresent();
}
}
diff --git a/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmProcessor.java b/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmProcessor.java
index 4a273307e3156..4d5b79cfbb368 100644
--- a/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmProcessor.java
+++ b/extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmProcessor.java
@@ -50,6 +50,7 @@
import org.jboss.jandex.DotName;
import org.jboss.jandex.IndexView;
import org.jboss.jandex.Indexer;
+import org.jboss.logmanager.Level;
import io.quarkus.agroal.deployment.JdbcDataSourceBuildItem;
import io.quarkus.agroal.deployment.JdbcDataSourceSchemaReadyBuildItem;
@@ -71,6 +72,7 @@
import io.quarkus.deployment.builditem.GeneratedResourceBuildItem;
import io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem;
import io.quarkus.deployment.builditem.LaunchModeBuildItem;
+import io.quarkus.deployment.builditem.LogCategoryBuildItem;
import io.quarkus.deployment.builditem.SystemPropertyBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
@@ -716,6 +718,13 @@ private void handleHibernateORMWithNoPersistenceXml(
}
}
+ @BuildStep
+ public void produceLoggingCategories(BuildProducer categories) {
+ if (hibernateConfig.log.bindParam) {
+ categories.produce(new LogCategoryBuildItem("org.hibernate.type.descriptor.sql.BasicBinder", Level.TRACE));
+ }
+ }
+
private Optional guessDialect(Optional dbKind) {
// For now select the latest dialect from the driver
// later, we can keep doing that but also avoid DCE