
io.quarkus.hibernate.orm.deployment.HibernateOrmConfig Maven / Gradle / Ivy
package io.quarkus.hibernate.orm.deployment;
import java.util.Map;
import java.util.Optional;
import java.util.TreeMap;
import io.quarkus.hibernate.orm.runtime.PersistenceUnitUtil;
import io.quarkus.runtime.annotations.ConfigDocMapKey;
import io.quarkus.runtime.annotations.ConfigDocSection;
import io.quarkus.runtime.annotations.ConfigGroup;
import io.quarkus.runtime.annotations.ConfigItem;
import io.quarkus.runtime.annotations.ConfigRoot;
@ConfigRoot
public class HibernateOrmConfig {
/**
* Configuration for the default persistence unit.
*/
@ConfigItem(name = ConfigItem.PARENT)
public HibernateOrmConfigPersistenceUnit defaultPersistenceUnit;
/**
* Additional named persistence units.
*/
@ConfigDocSection
@ConfigDocMapKey("persistence-unit-name")
@ConfigItem(name = ConfigItem.PARENT)
public Map persistenceUnits;
/**
* Logging configuration.
*/
@ConfigItem
@ConfigDocSection
public HibernateOrmConfigLog log;
/**
* Whether statistics collection is enabled. If 'metrics.enabled' is true, then the default here is
* considered true, otherwise the default is false.
*/
@ConfigItem
public Optional statistics;
/**
* Whether session metrics should be appended into the server log for each Hibernate session. This
* only has effect if statistics are enabled (`quarkus.hibernate-orm.statistics`). The default is false
* (which means both `statistics` and `log-session-metrics` need to be enabled for the session metrics
* to appear in the log).
*/
@ConfigItem
public Optional logSessionMetrics;
/**
* Whether metrics are published if a metrics extension is enabled.
*/
@ConfigItem(name = "metrics.enabled")
public boolean metricsEnabled;
public boolean isAnyPropertySet() {
return defaultPersistenceUnit.isAnyPropertySet() ||
!persistenceUnits.isEmpty() ||
log.isAnyPropertySet() ||
statistics.isPresent() ||
metricsEnabled;
}
public Map getAllPersistenceUnitConfigsAsMap() {
Map map = new TreeMap<>();
if (defaultPersistenceUnit != null) {
map.put(PersistenceUnitUtil.DEFAULT_PERSISTENCE_UNIT_NAME, defaultPersistenceUnit);
}
map.putAll(persistenceUnits);
return map;
}
@ConfigGroup
public static class HibernateOrmConfigLog {
/**
* Logs SQL bind parameter.
*
* Setting it to true is obviously not recommended in production.
*/
@ConfigItem
@Deprecated
public boolean bindParam;
/**
* Logs SQL bind parameters.
*
* Setting it to true is obviously not recommended in production.
*/
@ConfigItem
public boolean bindParameters;
public boolean isAnyPropertySet() {
return bindParam || bindParameters;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy