Package net.sf.basedb.core
Class ServiceSessionControl.SessionFactoryConfiguration
java.lang.Object
net.sf.basedb.core.ServiceSessionControl.SessionFactoryConfiguration
- Enclosing class:
- ServiceSessionControl
Used for creating a configuration that is the basis for building a
session factory. The typical workflow is:
1. Create an instance of this class by calling
ServiceSessionControl.createSessionFactoryConfiguration(String, String, int, ClassLoader)
2. Set configuration properties on getRegistryBuilder()
3. Add mapped entity classes on getMetadataSources()
4. Build the session factory: ServiceSessionControl.buildSessionFactory(SessionFactoryConfiguration)
Store the created session factory in a service instance variable. When a
database connection is needed use:
1. ServiceSessionControl.newSession(SessionBuilder, DbControl)
: for a transaction that is piggy-backed on
a BASE DbControl
2. SessionFactory.openSession()
: for a standalone transaction.- Since:
- 3.8
-
Field Summary
Modifier and TypeFieldDescriptionprivate String
private String
private final String
private final ClassLoader
private int
private SchemaGenerator.Mode
private MetadataSources
private StandardServiceRegistryBuilder
private final String
private final int
private boolean
-
Constructor Summary
ConstructorDescriptionSessionFactoryConfiguration
(String appId, String schema, int schemaVersion, ClassLoader classLoader) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
checkLocked
(String method) Check that theThe actual catalog that will be used by BASE.The actual schema that will be used by BASE.getAppId()
Get the application id for schema versioning.Get the class loader used for accessing mapped classes.int
Get the currently installed version of the schema or 0 if not installed.Get the installation mode that BASE will use when creating the session factory.Get an object for registering mapped entity classes.Get the registry for collecting configuration options.Get the schema.int
Get the schema version of the current configuration.(package private) void
init()
void
setUseSeparateConnections
(boolean separate) Set to TRUE to use connections separate from BASE connections.boolean
Should the session factory be configured to use separate connections or is piggy-backed sessions required?
-
Field Details
-
appId
-
schema
-
schemaVersion
private final int schemaVersion -
classLoader
-
registryBuilder
-
metadataSources
-
actualCatalog
-
actualSchema
-
installMode
-
installedSchemaVersion
private int installedSchemaVersion -
useSeparateConnections
private boolean useSeparateConnections
-
-
Constructor Details
-
SessionFactoryConfiguration
SessionFactoryConfiguration(String appId, String schema, int schemaVersion, ClassLoader classLoader)
-
-
Method Details
-
init
void init() -
getSchema
Get the schema. -
getAppId
Get the application id for schema versioning. -
getSchemaVersion
public int getSchemaVersion()Get the schema version of the current configuration. -
getInstallMode
Get the installation mode that BASE will use when creating the session factory. Returns null if no install/update is needed. -
getInstalledSchemaVersion
public int getInstalledSchemaVersion()Get the currently installed version of the schema or 0 if not installed. -
getActualSchema
The actual schema that will be used by BASE. -
getActualCatalog
The actual catalog that will be used by BASE. -
getClassLoader
Get the class loader used for accessing mapped classes. -
setUseSeparateConnections
public void setUseSeparateConnections(boolean separate) Set to TRUE to use connections separate from BASE connections. If you enable this, you will probably also want to configure connection pooling since the default connection pooling is not recommended for production use. Connection pooling is configured ongetRegistryBuilder()
object. Basically you need to set the 'connection.provider_class' property to 'org.hibernate.connection.C3P0ConnectionProvider' and some other properties. You'll need to look for this documentation in other places. -
useSeparateConnections
public boolean useSeparateConnections()Should the session factory be configured to use separate connections or is piggy-backed sessions required? -
checkLocked
Check that the -
getRegistryBuilder
Get the registry for collecting configuration options. The registry is used for configuration options that go into the hibernate.cfg.xml file. Note that BASE will automatially add configuration options for connecting to the database and the following options will be overwritten:hibernate.dialect hibernate.connection_driver_class hibernate.default_catalog hibernate.default_schema hibernate.connection.url hibernate.connection.username hibernate.connection.password
The registry must be fully configured before calling
getMetadataSources()
. This method will throw an exception if called in the incorrect order. -
getMetadataSources
Get an object for registering mapped entity classes. Once this method has been called it is not possible to modify the registry builder or other configuration settings.
-