Java 类org.hibernate.service.internal.SessionFactoryServiceRegistryImpl 实例源码
项目:breeze.server.java
文件:HibernateMetadata.java
/**
* Extract the Configuration from the ServiceRegistry exposed by SessionFactoryImpl. Works in
* Hibernate 4.3, but will probably break in a future version as they keep trying to make the
* configuration harder to access (for some reason). Hopefully they will provide a interface to
* get the full mapping data again.
*
* @param sessionFactory
*/
Configuration getConfigurationFromRegistry(SessionFactory sessionFactory) {
ServiceRegistryImplementor serviceRegistry = ((SessionFactoryImplementor) _sessionFactory).getServiceRegistry();
SessionFactoryServiceRegistryImpl impl = (SessionFactoryServiceRegistryImpl) serviceRegistry;
Configuration cfg = null;
try {
Field configurationField = SessionFactoryServiceRegistryImpl.class.getDeclaredField("configuration");
configurationField.setAccessible(true);
Object configurationObject = configurationField.get(impl);
cfg = (Configuration) configurationObject;
} catch (Exception e) {
e.printStackTrace();
}
if (cfg == null) {
throw new RuntimeException(
"Unable to get the Configuration from the service registry. Please provide the Configuration in the constructor.");
}
return cfg;
}
项目:mojito
文件:DDLGenerator.java
@Test
public void generateCreateAnUpdateDDL() throws IOException {
logger.debug("Generate create and update DDL");
EntityManagerFactoryImpl emf = (EntityManagerFactoryImpl) lcemfb.getNativeEntityManagerFactory();
SessionFactoryImpl sf = emf.getSessionFactory();
SessionFactoryServiceRegistryImpl serviceRegistry = (SessionFactoryServiceRegistryImpl) sf.getServiceRegistry();
Configuration cfg = null;
try {
Field field = SessionFactoryServiceRegistryImpl.class.getDeclaredField("configuration");
field.setAccessible(true);
cfg = (Configuration) field.get(serviceRegistry);
} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
throw new RuntimeException(e);
}
Files.createDirectories(Paths.get("target/db/migration/"));
SchemaUpdate update = new SchemaUpdate(serviceRegistry, cfg);
update.setDelimiter(";");
update.setOutputFile("target/db/migration/Vx__yy_zz.sql");
update.execute(false, false);
SchemaExport export = new SchemaExport(serviceRegistry, cfg);
export.setDelimiter(";");
export.setOutputFile("target/db/migration/create.sql");
export.execute(false, false, false, true);
}
项目:lams
文件:SessionFactoryServiceRegistryFactory.java
/**
* Create the registry.
*
* @todo : fully expect this signature to change!
*
* @param sessionFactory The (in flux) session factory. Generally this is useful for grabbing a reference for later
* use. However, care should be taken when invoking on the session factory until after it has been fully
* initialized.
* @param configuration The configuration object.
*
* @return The registry
*/
public SessionFactoryServiceRegistryImpl buildServiceRegistry(
SessionFactoryImplementor sessionFactory,
Configuration configuration);
项目:lams
文件:SessionFactoryServiceRegistryFactory.java
/**
* Create the registry.
*
* @todo : fully expect this signature to change!
*
* @param sessionFactory The (in flux) session factory. Generally this is useful for grabbing a reference for later
* use. However, care should be taken when invoking on the session factory until after it has been fully
* initialized.
* @param metadata The configuration object.
*
* @return The registry
*/
public SessionFactoryServiceRegistryImpl buildServiceRegistry(
SessionFactoryImplementor sessionFactory,
MetadataImplementor metadata);