List of usage examples for org.hibernate.tool.schema TargetType DATABASE
TargetType DATABASE
To view the source code for org.hibernate.tool.schema TargetType DATABASE.
Click Source Link
From source file:com.abcanthur.website.codegenhack.JPADatabase.java
License:Apache License
@SuppressWarnings("serial") @Override/*from w ww .j a va 2 s .com*/ protected DSLContext create0() { if (connection == null) { String packages = getProperties().getProperty("packages"); if (isBlank(packages)) { packages = ""; log.warn("No packages defined", "It is highly recommended that you provide explicit packages to scan"); } try { connection = DriverManager.getConnection("jdbc:h2:mem:jooq-meta-extensions", "sa", ""); MetadataSources metadata = new MetadataSources(new StandardServiceRegistryBuilder() .applySetting("hibernate.dialect", "org.hibernate.dialect.H2Dialect") .applySetting("javax.persistence.schema-generation-connection", connection) // [#5607] JPADatabase causes warnings - This prevents them .applySetting(AvailableSettings.CONNECTION_PROVIDER, "com.abcanthur.website.codegenhack.CustomConnectionProvider") .build()); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( true); scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class)); for (String pkg : packages.split(",")) for (BeanDefinition def : scanner.findCandidateComponents(defaultIfBlank(pkg, "").trim())) metadata.addAnnotatedClass(Class.forName(def.getBeanClassName())); // This seems to be the way to do this in idiomatic Hibernate 5.0 API // See also: http://stackoverflow.com/q/32178041/521799 // SchemaExport export = new SchemaExport((MetadataImplementor) metadata.buildMetadata(), connection); // export.create(true, true); // Hibernate 5.2 broke 5.0 API again. Here's how to do this now: SchemaExport export = new SchemaExport(); export.create(EnumSet.of(TargetType.DATABASE), metadata.buildMetadata()); } catch (Exception e) { throw new DataAccessException("Error while exporting schema", e); } } return DSL.using(connection); }
From source file:com.imos.sample.service.HibernateService.java
/** * Hibernate configuration.//from w ww . j a v a2 s. c om * * @throws RepositoryException */ public void config() throws RepositoryException { try { StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder(); if (filePath == null || filePath.isEmpty()) { registryBuilder = registryBuilder.configure(); } else { registryBuilder = registryBuilder.configure(filePath); } registry = registryBuilder.build(); MetadataSources metaData = new MetadataSources(registry); sessionFactory = metaData.buildMetadata().buildSessionFactory(); session = sessionFactory.openSession(); SchemaExport schemaExport = new SchemaExport(); schemaExport.setDelimiter(";"); schemaExport.setFormat(true); schemaExport.setManageNamespaces(true); schemaExport.setOutputFile("./ddl_skilldb.sql"); schemaExport.execute(EnumSet.of(TargetType.SCRIPT, TargetType.DATABASE, TargetType.STDOUT), SchemaExport.Action.CREATE, metaData.buildMetadata(registry), registry); log.info("Configuration succeed"); } catch (HibernateException e) { StandardServiceRegistryBuilder.destroy(registry); log.error("Configuration failed : {}", e); } }
From source file:com.yahoo.elide.datastores.hibernate5.HibernateEntityManagerDataStoreSupplier.java
License:Apache License
@Override public DataStore get() { // Add additional checks to our static check mappings map. // NOTE: This is a bit hacky. We need to do a major overhaul on our test architecture TestCheckMappings.MAPPINGS.put("filterCheck", Filtered.FilterCheck.class); TestCheckMappings.MAPPINGS.put("filterCheck3", Filtered.FilterCheck3.class); Map<String, Object> options = new HashMap<>(); ArrayList<Class> bindClasses = new ArrayList<>(); try {/*www . j a va2 s . com*/ bindClasses.addAll(ClassScanner.getAnnotatedClasses(Parent.class.getPackage(), Entity.class)); } catch (MappingException e) { throw new IllegalStateException(e); } options.put("javax.persistence.jdbc.driver", "com.mysql.jdbc.Driver"); options.put("javax.persistence.jdbc.url", JDBC_PREFIX + System.getProperty(MYSQL_PORT_PROPERTY, MYSQL_PORT) + JDBC_SUFFIX); options.put("javax.persistence.jdbc.user", ROOT); options.put("javax.persistence.jdbc.password", ROOT); options.put(AvailableSettings.LOADED_CLASSES, bindClasses); EntityManagerFactory emf = Persistence.createEntityManagerFactory("elide-tests", options); HibernateEntityManager em = (HibernateEntityManager) emf.createEntityManager(); // method to force class initialization MetadataSources metadataSources = new MetadataSources(new StandardServiceRegistryBuilder() .configure("hibernate.cfg.xml").applySetting(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread") .applySetting(Environment.URL, JDBC_PREFIX + System.getProperty(MYSQL_PORT_PROPERTY, MYSQL_PORT) + JDBC_SUFFIX) .applySetting(Environment.USER, ROOT).applySetting(Environment.PASS, ROOT).build()); try { ClassScanner.getAnnotatedClasses(Parent.class.getPackage(), Entity.class) .forEach(metadataSources::addAnnotatedClass); } catch (MappingException e) { throw new IllegalStateException(e); } MetadataImplementor metadataImplementor = (MetadataImplementor) metadataSources.buildMetadata(); EnumSet<TargetType> type = EnumSet.of(TargetType.DATABASE); // create example tables from beans SchemaExport schemaExport = new SchemaExport(); schemaExport.drop(type, metadataImplementor); schemaExport.execute(type, SchemaExport.Action.CREATE, metadataImplementor); if (!schemaExport.getExceptions().isEmpty()) { throw new IllegalStateException(schemaExport.getExceptions().toString()); } return new AbstractHibernateStore.Builder(em).withScrollEnabled(true) .withScrollMode(ScrollMode.FORWARD_ONLY).build(); }
From source file:org.glite.security.voms.admin.persistence.deployer.SchemaDeployer.java
License:Apache License
private void doUndeploy() { checkVoExistence();//from w w w . j a va 2s .co m log.info("Undeploying voms database..."); int existingDB = checkDatabaseExistence(); if (existingDB == 1) { log.error( "This tool cannot undeploy voms-admin 1.2.x database! Please upgrade to voms-admin 2 or use voms-admin-configure 1.2.x tools to undeploy this database."); System.exit(-1); } if (existingDB == 2) { log.error( "This tool cannot undeploy voms-admin 2.0.x databases! Please either upgrade the database to voms-admin 2.5 (using this tool) or use voms-admin-configure 2.0.x" + " tools to undeploy this database"); System.exit(-1); } if (existingDB < 0) { log.error("No voms-admin database found!"); System.exit(-1); } checkDatabaseWritable(); SchemaExport export = new SchemaExport(); EnumSet<TargetType> targetTypes = EnumSet.of(TargetType.DATABASE); Metadata md = getHibernateMetadataSources().getMetadataBuilder().build(); export.drop(targetTypes, md); @SuppressWarnings("rawtypes") List l = export.getExceptions(); if (!l.isEmpty()) { log.error("Error undeploying voms database!"); printExceptions(l); System.exit(2); } log.info("Database undeployed correctly!"); }
From source file:org.glite.security.voms.admin.persistence.deployer.SchemaDeployer.java
License:Apache License
private void doDeploy() { checkVoExistence();/*from www . ja va 2s . co m*/ int existingDb = checkDatabaseExistence(); if (existingDb > 0) { final String adminDbVersion = VOMSVersionDAO.instance().getVersion().getAdminVersion().trim(); log.warn("Existing voms database found. Will not overwrite " + "the database! (admin db version: {})", adminDbVersion); System.exit(0); } checkDatabaseWritable(); SchemaExport exporter = new SchemaExport(); EnumSet<TargetType> targetTypes = EnumSet.of(TargetType.DATABASE); exporter.createOnly(targetTypes, HibernateFactory.getMetadata()); log.info("Deploying voms database..."); @SuppressWarnings("rawtypes") List l = exporter.getExceptions(); if (!l.isEmpty()) { log.error("Error deploying voms database!"); printExceptions(l); System.exit(2); } // This is needed as the version of hibernate we are using // does not support defining indexes on join table columns // See: https://hibernate.atlassian.net/browse/HHH-4263 CreateAuditEventDataIndexes createIndexTask = new CreateAuditEventDataIndexes( HibernateFactory.getSession()); HibernateFactory.beginTransaction(); createIndexTask.run(); CreateAttributeValueIndex avIndexTask = new CreateAttributeValueIndex(HibernateFactory.getSession()); avIndexTask.run(); UpdateCATask caTask = new UpdateCATask(); caTask.run(); DatabaseSetupTask task = DatabaseSetupTask.instance(); task.run(); HibernateFactory.commitTransaction(); log.info("Database deployed correctly!"); }
From source file:org.jooq.example.jpa.JPAExample.java
License:Apache License
@SuppressWarnings("serial") public static void main(String[] args) throws Exception { Connection connection = null; EntityManagerFactory emf = null;//from w w w . jav a 2 s . c o m EntityManager em = null; try { // Bootstrapping JDBC: Class.forName("org.h2.Driver"); connection = DriverManager.getConnection("jdbc:h2:mem:jooq-jpa-example", "sa", ""); final Connection c = connection; // Creating an in-memory H2 database from our entities MetadataSources metadata = new MetadataSources(new StandardServiceRegistryBuilder() .applySetting("hibernate.dialect", "org.hibernate.dialect.H2Dialect") .applySetting("javax.persistence.schema-generation-connection", connection) .applySetting("javax.persistence.create-database-schemas", true) // [#5607] JPADatabase causes warnings - This prevents // them .applySetting(AvailableSettings.CONNECTION_PROVIDER, new ConnectionProvider() { @SuppressWarnings("rawtypes") @Override public boolean isUnwrappableAs(Class unwrapType) { return false; } @Override public <T> T unwrap(Class<T> unwrapType) { return null; } @Override public Connection getConnection() { return c; } @Override public void closeConnection(Connection conn) throws SQLException { } @Override public boolean supportsAggressiveRelease() { return true; } }).build()); metadata.addAnnotatedClass(Actor.class); metadata.addAnnotatedClass(Film.class); metadata.addAnnotatedClass(Language.class); SchemaExport export = new SchemaExport(); export.create(EnumSet.of(TargetType.DATABASE), metadata.buildMetadata()); // Setting up an EntityManager using Spring (much easier than out-of-the-box Hibernate) LocalContainerEntityManagerFactoryBean bean = new LocalContainerEntityManagerFactoryBean(); HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter(); adapter.setDatabasePlatform(SQLDialect.H2.thirdParty().hibernateDialect()); bean.setDataSource(new SingleConnectionDataSource(connection, true)); bean.setPackagesToScan("org.jooq.example.jpa.entity"); bean.setJpaVendorAdapter(adapter); bean.setPersistenceUnitName("test"); bean.setPersistenceProviderClass(HibernatePersistenceProvider.class); bean.afterPropertiesSet(); emf = bean.getObject(); em = emf.createEntityManager(); final EntityManager e = em; // Run some Hibernate / jOOQ logic inside of a transaction em.getTransaction().begin(); run(em, DSL.using(new DefaultConfiguration().set(connection).set(new DefaultExecuteListener() { @Override public void start(ExecuteContext ctx) { // Flush all changes from the EntityManager to the database for them to be visible in jOOQ e.flush(); super.start(ctx); } }))); em.getTransaction().commit(); } finally { if (em != null) em.close(); if (emf != null) emf.close(); if (connection != null) connection.close(); } }
From source file:org.jooq.example.jpa.Setup.java
License:Apache License
static void run(BiConsumer<EntityManager, DSLContext> consumer) throws Exception { Connection connection = null; EntityManagerFactory emf = null;//w ww . ja v a2s . c o m EntityManager em = null; try { // Bootstrapping JDBC: Class.forName("org.h2.Driver"); connection = new LoggingConnection( DriverManager.getConnection("jdbc:h2:mem:jooq-jpa-example", "sa", "")); final Connection c = connection; // Creating an in-memory H2 database from our entities MetadataSources metadata = new MetadataSources(new StandardServiceRegistryBuilder() .applySetting("hibernate.dialect", "org.hibernate.dialect.H2Dialect") .applySetting("javax.persistence.schema-generation-connection", connection) .applySetting("javax.persistence.create-database-schemas", true) // [#5607] JPADatabase causes warnings - This prevents // them .applySetting(AvailableSettings.CONNECTION_PROVIDER, new ConnectionProvider() { @SuppressWarnings("rawtypes") @Override public boolean isUnwrappableAs(Class unwrapType) { return false; } @Override public <T> T unwrap(Class<T> unwrapType) { return null; } @Override public Connection getConnection() { return c; } @Override public void closeConnection(Connection conn) throws SQLException { } @Override public boolean supportsAggressiveRelease() { return true; } }).build()); metadata.addAnnotatedClass(Actor.class); metadata.addAnnotatedClass(Film.class); metadata.addAnnotatedClass(Language.class); SchemaExport export = new SchemaExport(); export.create(EnumSet.of(TargetType.DATABASE), metadata.buildMetadata()); // Setting up an EntityManager using Spring (much easier than out-of-the-box Hibernate) LocalContainerEntityManagerFactoryBean bean = new LocalContainerEntityManagerFactoryBean(); HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter(); adapter.setDatabasePlatform(SQLDialect.H2.thirdParty().hibernateDialect()); bean.setDataSource(new SingleConnectionDataSource(connection, true)); bean.setPackagesToScan("org.jooq.example.jpa.entity"); bean.setJpaVendorAdapter(adapter); bean.setPersistenceUnitName("test"); bean.setPersistenceProviderClass(HibernatePersistenceProvider.class); bean.afterPropertiesSet(); emf = bean.getObject(); em = emf.createEntityManager(); final EntityManager e = em; // Run some Hibernate / jOOQ logic inside of a transaction em.getTransaction().begin(); data(em); consumer.accept(em, DSL.using(new DefaultConfiguration().set(connection).set(new DefaultExecuteListener() { @Override public void start(ExecuteContext ctx) { // Flush all changes from the EntityManager to the database for them to be visible in jOOQ e.flush(); super.start(ctx); } }))); em.getTransaction().commit(); } finally { if (em != null) em.close(); if (emf != null) emf.close(); if (connection != null) connection.close(); } }
From source file:org.jooq.meta.extensions.jpa.JPADatabase.java
License:Apache License
@Override protected DSLContext create0() { if (connection == null) { String packages = getProperties().getProperty("packages"); if (isBlank(packages)) { packages = ""; log.warn("No packages defined", "It is highly recommended that you provide explicit packages to scan"); }/*from w w w. j a v a2s .c o m*/ // [#9058] Properties use camelCase notation. boolean useAttributeConverters = Boolean.valueOf(getProperties().getProperty("useAttributeConverters", getProperties().getProperty("use-attribute-converters", "true"))); String unqualifiedSchema = getProperties().getProperty("unqualifiedSchema", "none").toLowerCase(); publicIsDefault = "none".equals(unqualifiedSchema); try { Properties info = new Properties(); info.put("user", "sa"); info.put("password", ""); connection = new org.h2.Driver().connect("jdbc:h2:mem:jooq-meta-extensions-" + UUID.randomUUID(), info); // [#6709] Apply default settings first, then allow custom overrides Map<String, Object> settings = new LinkedHashMap<>(); settings.put("hibernate.dialect", HIBERNATE_DIALECT); settings.put("javax.persistence.schema-generation-connection", connection); settings.put("javax.persistence.create-database-schemas", true); // [#5607] JPADatabase causes warnings - This prevents them settings.put(AvailableSettings.CONNECTION_PROVIDER, connectionProvider()); for (Entry<Object, Object> entry : getProperties().entrySet()) { String key = "" + entry.getKey(); if (key.startsWith("hibernate.") || key.startsWith("javax.persistence.")) userSettings.put(key, entry.getValue()); } settings.putAll(userSettings); StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); builder.applySettings(settings); MetadataSources metadata = new MetadataSources(builder.applySettings(settings).build()); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( true); scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class)); // [#5845] Use the correct ClassLoader to load the jpa entity classes defined in the user project ClassLoader cl = Thread.currentThread().getContextClassLoader(); for (String pkg : packages.split(",")) for (BeanDefinition def : scanner.findCandidateComponents(defaultIfBlank(pkg, "").trim())) metadata.addAnnotatedClass(Class.forName(def.getBeanClassName(), true, cl)); // This seems to be the way to do this in idiomatic Hibernate 5.0 API // See also: http://stackoverflow.com/q/32178041/521799 // SchemaExport export = new SchemaExport((MetadataImplementor) metadata.buildMetadata(), connection); // export.create(true, true); // Hibernate 5.2 broke 5.0 API again. Here's how to do this now: SchemaExport export = new SchemaExport(); export.create(EnumSet.of(TargetType.DATABASE), metadata.buildMetadata()); if (useAttributeConverters) loadAttributeConverters(metadata.getAnnotatedClasses()); } catch (Exception e) { throw new DataAccessException("Error while exporting schema", e); } } return DSL.using(connection); }