Esquema programáticoExport / SchemaUpdate com Hibernate 5 e Spring 4
Com o Spring 4 e o Hibernate 4, pude usar o Reflection para obter o objeto Hibernate Configuration do ambiente atual, usando este código:
@Autowired LocalContainerEntityManagerFactoryBean lcemfb;
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) {
e.printStackTrace();
}
SchemaUpdate update = new SchemaUpdate(serviceRegistry, cfg);
Com o Hibernate 5, devo usar algunsMetadataImplementor
, que parece não estar disponível em nenhum desses objetos. Eu também tentei usarMetadataSources
com oserviceRegistry
. Mas ele disse que é o tipo errado deServiceRegistry
.
Existe alguma outra maneira de fazer isso funcionar?