org.hibernate.cfg.AvailableSettings Maven / Gradle / Ivy
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* Copyright (c) 2011, Red Hat Inc. or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors. All third-party contributions are
* distributed under license by Red Hat Inc.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
*/
package org.hibernate.cfg;
/**
* @author Steve Ebersole
*/
public interface AvailableSettings {
/**
* Names a {@literal JNDI} namespace into which the {@link org.hibernate.SessionFactory} should be bound.
*/
public static final String SESSION_FACTORY_NAME = "hibernate.session_factory_name";
/**
* Names the {@link org.hibernate.service.jdbc.connections.spi.ConnectionProvider} to use for obtaining
* JDBC connections. Can either reference an instance of
* {@link org.hibernate.service.jdbc.connections.spi.ConnectionProvider} or a {@link Class} or {@link String}
* reference to the {@link org.hibernate.service.jdbc.connections.spi.ConnectionProvider} implementation
* class.
*/
public static final String CONNECTION_PROVIDER ="hibernate.connection.provider_class";
/**
* Names the {@literal JDBC} driver class
*/
public static final String DRIVER ="hibernate.connection.driver_class";
/**
* Names the {@literal JDBC} connection url.
*/
public static final String URL ="hibernate.connection.url";
/**
* Names the connection user. This might mean one of 2 things in out-of-the-box Hibernate
* {@link org.hibernate.service.jdbc.connections.spi.ConnectionProvider}:
* - The username used to pass along to creating the JDBC connection
* - The username used to obtain a JDBC connection from a data source
*
*/
public static final String USER ="hibernate.connection.username";
/**
* Names the connection password. See usage discussion on {@link #USER}
*/
public static final String PASS ="hibernate.connection.password";
/**
* Names the {@literal JDBC} transaction isolation level
*/
public static final String ISOLATION ="hibernate.connection.isolation";
/**
* Names the {@literal JDBC} autocommit mode
*/
public static final String AUTOCOMMIT ="hibernate.connection.autocommit";
/**
* Maximum number of inactive connections for the built-in Hibernate connection pool.
*/
public static final String POOL_SIZE ="hibernate.connection.pool_size";
/**
* Names a {@link javax.sql.DataSource}. Can either reference a {@link javax.sql.DataSource} instance or
* a {@literal JNDI} name under which to locate the {@link javax.sql.DataSource}.
*/
public static final String DATASOURCE ="hibernate.connection.datasource";
/**
* Names a prefix used to define arbitrary JDBC connection properties. These properties are passed along to
* the {@literal JDBC} provider when creating a connection.
*/
public static final String CONNECTION_PREFIX = "hibernate.connection";
/**
* Names the {@literal JNDI} {@link javax.naming.InitialContext} class.
*
* @see javax.naming.Context#INITIAL_CONTEXT_FACTORY
*/
public static final String JNDI_CLASS ="hibernate.jndi.class";
/**
* Names the {@literal JNDI} provider/connection url
*
* @see javax.naming.Context#PROVIDER_URL
*/
public static final String JNDI_URL ="hibernate.jndi.url";
/**
* Names a prefix used to define arbitrary {@literal JNDI} {@link javax.naming.InitialContext} properties. These
* properties are passed along to {@link javax.naming.InitialContext#InitialContext(java.util.Hashtable)}
*/
public static final String JNDI_PREFIX = "hibernate.jndi";
/**
* Names the Hibernate {@literal SQL} {@link org.hibernate.dialect.Dialect} class
*/
public static final String DIALECT ="hibernate.dialect";
/**
* Names any additional {@link org.hibernate.service.jdbc.dialect.spi.DialectResolver} implementations to
* register with the standard {@link org.hibernate.service.jdbc.dialect.spi.DialectFactory}.
*/
public static final String DIALECT_RESOLVERS = "hibernate.dialect_resolvers";
/**
* A default database schema (owner) name to use for unqualified tablenames
*/
public static final String DEFAULT_SCHEMA = "hibernate.default_schema";
/**
* A default database catalog name to use for unqualified tablenames
*/
public static final String DEFAULT_CATALOG = "hibernate.default_catalog";
/**
* Enable logging of generated SQL to the console
*/
public static final String SHOW_SQL ="hibernate.show_sql";
/**
* Enable formatting of SQL logged to the console
*/
public static final String FORMAT_SQL ="hibernate.format_sql";
/**
* Add comments to the generated SQL
*/
public static final String USE_SQL_COMMENTS ="hibernate.use_sql_comments";
/**
* Maximum depth of outer join fetching
*/
public static final String MAX_FETCH_DEPTH = "hibernate.max_fetch_depth";
/**
* The default batch size for batch fetching
*/
public static final String DEFAULT_BATCH_FETCH_SIZE = "hibernate.default_batch_fetch_size";
/**
* Use java.io streams to read / write binary data from / to JDBC
*/
public static final String USE_STREAMS_FOR_BINARY = "hibernate.jdbc.use_streams_for_binary";
/**
* Use JDBC scrollable ResultSets. This property is only necessary when there is
* no ConnectionProvider, ie. the user is supplying JDBC connections.
*/
public static final String USE_SCROLLABLE_RESULTSET = "hibernate.jdbc.use_scrollable_resultset";
/**
* Tells the JDBC driver to attempt to retrieve row Id with the JDBC 3.0 PreparedStatement.getGeneratedKeys()
* method. In general, performance will be better if this property is set to true and the underlying
* JDBC driver supports getGeneratedKeys().
*/
public static final String USE_GET_GENERATED_KEYS = "hibernate.jdbc.use_get_generated_keys";
/**
* Gives the JDBC driver a hint as to the number of rows that should be fetched from the database
* when more rows are needed. If 0, JDBC driver default settings will be used.
*/
public static final String STATEMENT_FETCH_SIZE = "hibernate.jdbc.fetch_size";
/**
* Maximum JDBC batch size. A nonzero value enables batch updates.
*/
public static final String STATEMENT_BATCH_SIZE = "hibernate.jdbc.batch_size";
/**
* Select a custom batcher.
*/
public static final String BATCH_STRATEGY = "hibernate.jdbc.factory_class";
/**
* Should versioned data be included in batching?
*/
public static final String BATCH_VERSIONED_DATA = "hibernate.jdbc.batch_versioned_data";
/**
* An XSLT resource used to generate "custom" XML
*/
public static final String OUTPUT_STYLESHEET ="hibernate.xml.output_stylesheet";
/**
* Maximum size of C3P0 connection pool
*/
public static final String C3P0_MAX_SIZE = "hibernate.c3p0.max_size";
/**
* Minimum size of C3P0 connection pool
*/
public static final String C3P0_MIN_SIZE = "hibernate.c3p0.min_size";
/**
* Maximum idle time for C3P0 connection pool
*/
public static final String C3P0_TIMEOUT = "hibernate.c3p0.timeout";
/**
* Maximum size of C3P0 statement cache
*/
public static final String C3P0_MAX_STATEMENTS = "hibernate.c3p0.max_statements";
/**
* Number of connections acquired when pool is exhausted
*/
public static final String C3P0_ACQUIRE_INCREMENT = "hibernate.c3p0.acquire_increment";
/**
* Idle time before a C3P0 pooled connection is validated
*/
public static final String C3P0_IDLE_TEST_PERIOD = "hibernate.c3p0.idle_test_period";
/**
* Proxool/Hibernate property prefix
* @deprecated Use {@link #PROXOOL_CONFIG_PREFIX} instead
*/
public static final String PROXOOL_PREFIX = "hibernate.proxool";
/**
* Proxool property to configure the Proxool Provider using an XML (/path/to/file.xml)
*/
public static final String PROXOOL_XML = "hibernate.proxool.xml";
/**
* Proxool property to configure the Proxool Provider using a properties file (/path/to/proxool.properties)
*/
public static final String PROXOOL_PROPERTIES = "hibernate.proxool.properties";
/**
* Proxool property to configure the Proxool Provider from an already existing pool (true / false)
*/
public static final String PROXOOL_EXISTING_POOL = "hibernate.proxool.existing_pool";
/**
* Proxool property with the Proxool pool alias to use
* (Required for PROXOOL_EXISTING_POOL, PROXOOL_PROPERTIES, or
* PROXOOL_XML)
*/
public static final String PROXOOL_POOL_ALIAS = "hibernate.proxool.pool_alias";
/**
* Enable automatic session close at end of transaction
*/
public static final String AUTO_CLOSE_SESSION = "hibernate.transaction.auto_close_session";
/**
* Enable automatic flush during the JTA beforeCompletion() callback
*/
public static final String FLUSH_BEFORE_COMPLETION = "hibernate.transaction.flush_before_completion";
/**
* Specifies how Hibernate should release JDBC connections.
*/
public static final String RELEASE_CONNECTIONS = "hibernate.connection.release_mode";
/**
* Context scoping impl for {@link org.hibernate.SessionFactory#getCurrentSession()} processing.
*/
public static final String CURRENT_SESSION_CONTEXT_CLASS = "hibernate.current_session_context_class";
/**
* Names the implementation of {@link org.hibernate.engine.transaction.spi.TransactionContext} to use for
* creating {@link org.hibernate.Transaction} instances
*/
public static final String TRANSACTION_STRATEGY = "hibernate.transaction.factory_class";
/**
* Names the {@link org.hibernate.service.jta.platform.spi.JtaPlatform} implementation to use for integrating
* with {@literal JTA} systems. Can reference either a {@link org.hibernate.service.jta.platform.spi.JtaPlatform}
* instance or the name of the {@link org.hibernate.service.jta.platform.spi.JtaPlatform} implementation class
* @since 4.0
*/
public static final String JTA_PLATFORM = "hibernate.transaction.jta.platform";
/**
* Names the {@link org.hibernate.transaction.TransactionManagerLookup} implementation to use for obtaining
* reference to the {@literal JTA} {@link javax.transaction.TransactionManager}
*
* @deprecated See {@link #JTA_PLATFORM}
*/
@Deprecated
public static final String TRANSACTION_MANAGER_STRATEGY = "hibernate.transaction.manager_lookup_class";
/**
* JNDI name of JTA UserTransaction object
*
* @deprecated See {@link #JTA_PLATFORM}
*/
@Deprecated
public static final String USER_TRANSACTION = "jta.UserTransaction";
/**
* The {@link org.hibernate.cache.spi.RegionFactory} implementation class
*/
public static final String CACHE_REGION_FACTORY = "hibernate.cache.region.factory_class";
/**
* The CacheProvider implementation class
*/
public static final String CACHE_PROVIDER_CONFIG = "hibernate.cache.provider_configuration_file_resource_path";
/**
* The CacheProvider JNDI namespace, if pre-bound to JNDI.
*/
public static final String CACHE_NAMESPACE = "hibernate.cache.jndi";
/**
* Enable the query cache (disabled by default)
*/
public static final String USE_QUERY_CACHE = "hibernate.cache.use_query_cache";
/**
* The QueryCacheFactory implementation class.
*/
public static final String QUERY_CACHE_FACTORY = "hibernate.cache.query_cache_factory";
/**
* Enable the second-level cache (enabled by default)
*/
public static final String USE_SECOND_LEVEL_CACHE = "hibernate.cache.use_second_level_cache";
/**
* Optimize the cache for minimal puts instead of minimal gets
*/
public static final String USE_MINIMAL_PUTS = "hibernate.cache.use_minimal_puts";
/**
* The CacheProvider region name prefix
*/
public static final String CACHE_REGION_PREFIX = "hibernate.cache.region_prefix";
/**
* Enable use of structured second-level cache entries
*/
public static final String USE_STRUCTURED_CACHE = "hibernate.cache.use_structured_entries";
/**
* Enable statistics collection
*/
public static final String GENERATE_STATISTICS = "hibernate.generate_statistics";
public static final String USE_IDENTIFIER_ROLLBACK = "hibernate.use_identifier_rollback";
/**
* Use bytecode libraries optimized property access
*/
public static final String USE_REFLECTION_OPTIMIZER = "hibernate.bytecode.use_reflection_optimizer";
/**
* The classname of the HQL query parser factory
*/
public static final String QUERY_TRANSLATOR = "hibernate.query.factory_class";
/**
* A comma-separated list of token substitutions to use when translating a Hibernate
* query to SQL
*/
public static final String QUERY_SUBSTITUTIONS = "hibernate.query.substitutions";
/**
* Should named queries be checked during startup (the default is enabled).
*
* Mainly intended for test environments.
*/
public static final String QUERY_STARTUP_CHECKING = "hibernate.query.startup_check";
/**
* Auto export/update schema using hbm2ddl tool. Valid values are update,
* create, create-drop and validate.
*/
public static final String HBM2DDL_AUTO = "hibernate.hbm2ddl.auto";
/**
* Comma-separated names of the optional files containing SQL DML statements executed
* during the SessionFactory creation.
* File order matters, the statements of a give file are executed before the statements of the
* following files.
*
* These statements are only executed if the schema is created ie if hibernate.hbm2ddl.auto
* is set to create or create-drop.
*
* The default value is /import.sql
*/
public static final String HBM2DDL_IMPORT_FILES = "hibernate.hbm2ddl.import_files";
/**
* The {@link org.hibernate.exception.spi.SQLExceptionConverter} to use for converting SQLExceptions
* to Hibernate's JDBCException hierarchy. The default is to use the configured
* {@link org.hibernate.dialect.Dialect}'s preferred SQLExceptionConverter.
*/
public static final String SQL_EXCEPTION_CONVERTER = "hibernate.jdbc.sql_exception_converter";
/**
* Enable wrapping of JDBC result sets in order to speed up column name lookups for
* broken JDBC drivers
*/
public static final String WRAP_RESULT_SETS = "hibernate.jdbc.wrap_result_sets";
/**
* Enable ordering of update statements by primary key value
*/
public static final String ORDER_UPDATES = "hibernate.order_updates";
/**
* Enable ordering of insert statements for the purpose of more efficient JDBC batching.
*/
public static final String ORDER_INSERTS = "hibernate.order_inserts";
/**
* The EntityMode in which set the Session opened from the SessionFactory.
*/
public static final String DEFAULT_ENTITY_MODE = "hibernate.default_entity_mode";
/**
* The jacc context id of the deployment
*/
public static final String JACC_CONTEXTID = "hibernate.jacc_context_id";
/**
* Should all database identifiers be quoted.
*/
public static final String GLOBALLY_QUOTED_IDENTIFIERS = "hibernate.globally_quoted_identifiers";
/**
* Enable nullability checking.
* Raises an exception if a property marked as not-null is null.
* Default to false if Bean Validation is present in the classpath and Hibernate Annotations is used,
* true otherwise.
*/
public static final String CHECK_NULLABILITY = "hibernate.check_nullability";
public static final String BYTECODE_PROVIDER = "hibernate.bytecode.provider";
public static final String JPAQL_STRICT_COMPLIANCE= "hibernate.query.jpaql_strict_compliance";
/**
* When using pooled {@link org.hibernate.id.enhanced.Optimizer optimizers}, prefer interpreting the
* database value as the lower (lo) boundary. The default is to interpret it as the high boundary.
*/
public static final String PREFER_POOLED_VALUES_LO = "hibernate.id.optimizer.pooled.prefer_lo";
/**
* The maximum number of strong references maintained by {@link org.hibernate.internal.util.collections.SoftLimitMRUCache}. Default is 128.
*/
public static final String QUERY_PLAN_CACHE_MAX_STRONG_REFERENCES = "hibernate.query.plan_cache_max_strong_references";
/**
* The maximum number of soft references maintained by {@link org.hibernate.internal.util.collections.SoftLimitMRUCache}. Default is 2048.
*/
public static final String QUERY_PLAN_CACHE_MAX_SOFT_REFERENCES = "hibernate.query.plan_cache_max_soft_references";
/**
* Should we not use contextual LOB creation (aka based on {@link java.sql.Connection#createBlob()} et al).
*/
public static final String NON_CONTEXTUAL_LOB_CREATION = "hibernate.jdbc.lob.non_contextual_creation";
/**
* Strategy for multi-tenancy.
* @see org.hibernate.MultiTenancyStrategy
* @since 4.0
*/
public static final String MULTI_TENANT = "hibernate.multiTenancy";
/**
* Names the {@link ClassLoader} used to load user application classes.
* @since 4.0
*/
public static final String APP_CLASSLOADER = "hibernate.classLoader.application";
/**
* Names the {@link ClassLoader} Hibernate should use to perform resource loading.
* @since 4.0
*/
public static final String RESOURCES_CLASSLOADER = "hibernate.classLoader.resources";
/**
* Names the {@link ClassLoader} responsible for loading Hibernate classes. By default this is
* the {@link ClassLoader} that loaded this class.
* @since 4.0
*/
public static final String HIBERNATE_CLASSLOADER = "hibernate.classLoader.hibernate";
/**
* Names the {@link ClassLoader} used when Hibernate is unable to locates classes on the
* {@link #APP_CLASSLOADER} or {@link #HIBERNATE_CLASSLOADER}.
* @since 4.0
*/
public static final String ENVIRONMENT_CLASSLOADER = "hibernate.classLoader.environment";
public static final String C3P0_CONFIG_PREFIX = "hibernate.c3p0";
public static final String PROXOOL_CONFIG_PREFIX = "hibernate.proxool";
public static final String JMX_ENABLED = "hibernate.jmx.enabled";
public static final String JMX_PLATFORM_SERVER = "hibernate.jmx.usePlatformServer";
public static final String JMX_AGENT_ID = "hibernate.jmx.agentId";
public static final String JMX_DOMAIN_NAME = "hibernate.jmx.defaultDomain";
public static final String JMX_SF_NAME = "hibernate.jmx.sessionFactoryName";
public static final String JMX_DEFAULT_OBJ_NAME_DOMAIN = "org.hibernate.core";
/**
* A configuration value key used to indicate that it is safe to cache
* {@link javax.transaction.TransactionManager} references.
* @since 4.0
*/
public static final String JTA_CACHE_TM = "hibernate.jta.cacheTransactionManager";
/**
* A configuration value key used to indicate that it is safe to cache
* {@link javax.transaction.UserTransaction} references.
* @since 4.0
*/
public static final String JTA_CACHE_UT = "hibernate.jta.cacheUserTransaction";
/**
* Setting used to give the name of the default {@link org.hibernate.annotations.CacheConcurrencyStrategy}
* to use when either {@link javax.persistence.Cacheable @Cacheable} or
* {@link org.hibernate.annotations.Cache @Cache} is used. {@link org.hibernate.annotations.Cache @Cache(strategy="..")} is used to override.
*/
public static final String DEFAULT_CACHE_CONCURRENCY_STRATEGY = "hibernate.cache.default_cache_concurrency_strategy";
/**
* Setting which indicates whether or not the new {@link org.hibernate.id.IdentifierGenerator} are used
* for AUTO, TABLE and SEQUENCE.
* Default to false to keep backward compatibility.
*/
public static final String USE_NEW_ID_GENERATOR_MAPPINGS = "hibernate.id.new_generator_mappings";
}