Example usage for org.hibernate.boot Metadata getEntityBindings

List of usage examples for org.hibernate.boot Metadata getEntityBindings

Introduction

In this page you can find the example usage for org.hibernate.boot Metadata getEntityBindings.

Prototype

java.util.Collection<PersistentClass> getEntityBindings();

Source Link

Document

Retrieves the PersistentClass entity metadata representation for known all entities.

Usage

From source file:com.blazebit.persistence.integration.hibernate.Hibernate52Integrator.java

License:Apache License

@Override
public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory,
        SessionFactoryServiceRegistry serviceRegistry) {
    // TODO: remember metadata for exact column types
    for (PersistentClass clazz : metadata.getEntityBindings()) {
        Class<?> entityClass = clazz.getMappedClass();

        if (entityClass != null && entityClass.isAnnotationPresent(CTE.class)) {
            clazz.getTable().setSubselect("select * from " + clazz.getJpaEntityName());
        }//from   w w  w . ja  v a  2s . com
    }

    serviceRegistry.locateServiceBinding(PersisterClassResolver.class)
            .setService(new CustomPersisterClassResolver());
    TableNameFormatter formatter = new NativeTableNameFormatter(
            sessionFactory.getJdbcServices().getJdbcEnvironment().getQualifiedObjectNameFormatter());
    serviceRegistry.locateServiceBinding(Database.class)
            .setService(new SimpleDatabase(getTableIterator(metadata.getDatabase().getNamespaces()),
                    sessionFactory.getDialect(), formatter, metadata));
}

From source file:com.blazebit.persistence.integration.hibernate.Hibernate5Integrator.java

License:Apache License

@Override
public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory,
        SessionFactoryServiceRegistry serviceRegistry) {
    for (PersistentClass clazz : metadata.getEntityBindings()) {
        Class<?> entityClass = clazz.getMappedClass();

        if (entityClass != null && entityClass.isAnnotationPresent(CTE.class)) {
            clazz.getTable().setSubselect("select * from " + clazz.getJpaEntityName());
        }/*w  w  w . j  a va2  s  .  co m*/
    }

    serviceRegistry.locateServiceBinding(PersisterClassResolver.class)
            .setService(new CustomPersisterClassResolver());
    TableNameFormatter formatter = new NativeTableNameFormatter(
            sessionFactory.getJdbcServices().getJdbcEnvironment().getQualifiedObjectNameFormatter());
    serviceRegistry.locateServiceBinding(Database.class)
            .setService(new SimpleDatabase(getTableIterator(metadata.getDatabase().getNamespaces()),
                    sessionFactory.getDialect(), formatter, metadata));
}

From source file:com.blazebit.persistence.integration.hibernate.Hibernate60Integrator.java

License:Apache License

@Override
public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory,
        SessionFactoryServiceRegistry serviceRegistry) {
    for (PersistentClass clazz : metadata.getEntityBindings()) {
        Class<?> entityClass = clazz.getMappedClass();

        if (entityClass != null && entityClass.isAnnotationPresent(CTE.class)) {
            clazz.getTable().setSubselect("select * from " + clazz.getJpaEntityName());
        }/*from w w  w .j ava  2s  .c  om*/
    }

    serviceRegistry.locateServiceBinding(PersisterClassResolver.class)
            .setService(new CustomPersisterClassResolver());
    TableNameFormatter formatter = new NativeTableNameFormatter(
            sessionFactory.getJdbcServices().getJdbcEnvironment().getQualifiedObjectNameFormatter());
    serviceRegistry.locateServiceBinding(Database.class)
            .setService(new SimpleDatabase(getTableIterator(metadata.getDatabase().getNamespaces()),
                    sessionFactory.getJdbcServices().getDialect(), formatter, metadata));
}

From source file:com.clueride.rest.MemberWebService.java

License:Apache License

private void dumpEntities() {
    Metadata metadata = MetadataExtractorIntegrator.INSTANCE.getMetadata();

    for (PersistentClass persistentClass : metadata.getEntityBindings()) {

        Table table = persistentClass.getTable();

        LOGGER.info(String.format("Entity: {} is mapped to table: {}", persistentClass.getClassName(),
                table.getName()));//from  www .  ja  v a  2 s.  co m

        for (Iterator propertyIterator = persistentClass.getPropertyIterator(); propertyIterator.hasNext();) {
            Property property = (Property) propertyIterator.next();

            for (Iterator columnIterator = property.getColumnIterator(); columnIterator.hasNext();) {
                Column column = (Column) columnIterator.next();

                LOGGER.info(String.format("Property: {} is mapped on table column: {} of type: {}",
                        property.getName(), column.getName(), column.getSqlType()));
            }
        }
    }
}

From source file:com.googlecode.hibernate.audit.extension.auditable.DefaultAuditableInformationProvider.java

License:Open Source License

public String getEntityName(Metadata metadata, Session session, String auditTypeClassName) {
    if (provider != null) {
        return provider.getEntityName(metadata, session, auditTypeClassName);
    }/*from w  w  w  .ja  v  a 2  s .  c  o  m*/
    for (PersistentClass classMapping : metadata.getEntityBindings()) {
        Class mappedClass = classMapping.getMappedClass();
        if (mappedClass == null) {
            mappedClass = classMapping.getProxyInterface();
        }
        if (mappedClass.getName().equals(auditTypeClassName)) {
            return classMapping.getEntityName();
        }
    }
    return auditTypeClassName;
}

From source file:com.googlecode.hibernate.audit.listener.AuditListener.java

License:Open Source License

private void processDynamicUpdate(Metadata metadata, SessionFactoryServiceRegistry serviceRegistry) {
    if (serviceRegistry.getService(ConfigurationService.class).getSetting(
            HibernateAudit.AUDIT_SET_DYNAMIC_UPDATE_FOR_AUDITED_MODEL_PROPERTY, StandardConverters.BOOLEAN,
            false)) {/* w  ww .  ja va  2s.c  om*/
        for (PersistentClass persistentClass : metadata.getEntityBindings()) {
            persistentClass.setDynamicUpdate(true);
            if (log.isInfoEnabled()) {
                log.info("Set dynamic-update to true for entity: " + persistentClass.getEntityName());
            }
        }
    }
}

From source file:org.apache.ignite.cache.hibernate.HibernateL2CacheStrategySelfTest.java

License:Apache License

/**
 * @param accessType Cache access typr./* w w w.  ja  v  a2 s .c  o  m*/
 * @param igniteInstanceName Name of the grid providing caches.
 * @return Session factory.
 */
private SessionFactory startHibernate(AccessType accessType, String igniteInstanceName) {
    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();

    builder.applySetting("hibernate.connection.url", CONNECTION_URL);

    for (Map.Entry<String, String> e : HibernateL2CacheSelfTest
            .hibernateProperties(igniteInstanceName, accessType.name()).entrySet())
        builder.applySetting(e.getKey(), e.getValue());

    builder.applySetting(USE_STRUCTURED_CACHE, "true");
    builder.applySetting(REGION_CACHE_PROPERTY + ENTITY1_NAME, "cache1");
    builder.applySetting(REGION_CACHE_PROPERTY + ENTITY2_NAME, "cache2");
    builder.applySetting(REGION_CACHE_PROPERTY + TIMESTAMP_CACHE, TIMESTAMP_CACHE);
    builder.applySetting(REGION_CACHE_PROPERTY + QUERY_CACHE, QUERY_CACHE);

    MetadataSources metadataSources = new MetadataSources(builder.build());

    metadataSources.addAnnotatedClass(Entity1.class);
    metadataSources.addAnnotatedClass(Entity2.class);
    metadataSources.addAnnotatedClass(Entity3.class);
    metadataSources.addAnnotatedClass(Entity4.class);

    Metadata metadata = metadataSources.buildMetadata();

    for (PersistentClass entityBinding : metadata.getEntityBindings()) {
        if (!entityBinding.isInherited())
            ((RootClass) entityBinding).setCacheConcurrencyStrategy(accessType.getExternalName());
    }

    return metadata.buildSessionFactory();
}

From source file:org.infinispan.test.hibernate.cache.commons.functional.AbstractFunctionalTest.java

License:LGPL

@Override
protected void afterMetadataBuilt(Metadata metadata) {
    if (addVersions) {
        for (PersistentClass clazz : metadata.getEntityBindings()) {
            if (clazz.getVersion() != null) {
                continue;
            }/*  ww  w .j a v a 2 s  .  c o m*/
            try {
                clazz.getMappedClass().getMethod("getVersion");
                clazz.getMappedClass().getMethod("setVersion", long.class);
            } catch (NoSuchMethodException e) {
                continue;
            }
            RootClass rootClazz = clazz.getRootClass();
            Property versionProperty = new Property();
            versionProperty.setName("version");
            SimpleValue value = new SimpleValue((MetadataImplementor) metadata, rootClazz.getTable());
            value.setTypeName("long");
            Column column = new Column();
            column.setValue(value);
            column.setName("version");
            value.addColumn(column);
            rootClazz.getTable().addColumn(column);
            versionProperty.setValue(value);
            rootClazz.setVersion(versionProperty);
            rootClazz.addProperty(versionProperty);
        }
    }
}

From source file:org.infinispan.test.hibernate.cache.commons.stress.CorrectnessTestCase.java

License:LGPL

private Metadata buildMetadata(StandardServiceRegistry registry) {
    MetadataSources metadataSources = new MetadataSources(registry);
    for (Class entityClass : getAnnotatedClasses()) {
        metadataSources.addAnnotatedClass(entityClass);
    }//from  ww w  .  ja  va  2  s.  co m

    Metadata metadata = metadataSources.buildMetadata();

    for (PersistentClass entityBinding : metadata.getEntityBindings()) {
        if (!entityBinding.isInherited()) {
            ((RootClass) entityBinding).setCacheConcurrencyStrategy(accessType.getExternalName());
        }
    }

    // Collections don't have integrated version, these piggyback on parent's owner version (for DB).
    // However, this version number isn't extractable and is not passed to cache methods.
    AccessType collectionAccessType = accessType == AccessType.NONSTRICT_READ_WRITE ? AccessType.READ_WRITE
            : accessType;
    for (Collection collectionBinding : metadata.getCollectionBindings()) {
        collectionBinding.setCacheConcurrencyStrategy(collectionAccessType.getExternalName());
    }

    return metadata;
}

From source file:org.infinispan.test.hibernate.cache.commons.stress.PutFromLoadStressTestCase.java

License:LGPL

@BeforeClass
public static void beforeClass() {
    // Extra options located in src/test/resources/hibernate.properties
    StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder()
            .applySetting(Environment.USE_SECOND_LEVEL_CACHE, "true")
            .applySetting(Environment.USE_QUERY_CACHE, "true")
            // TODO: Tweak to have a fully local region factory (no transport, cache mode = local, no marshalling, ...etc)
            .applySetting(Environment.CACHE_REGION_FACTORY,
                    "org.infinispan.hibernate.cache.InfinispanRegionFactory")
            .applySetting(Environment.JTA_PLATFORM, new NarayanaStandaloneJtaPlatform())
            // Force minimal puts off to simplify stressing putFromLoad logic
            .applySetting(Environment.USE_MINIMAL_PUTS, "false")
            .applySetting(Environment.HBM2DDL_AUTO, "create-drop");

    StandardServiceRegistry serviceRegistry = ssrb.build();

    MetadataSources metadataSources = new MetadataSources(serviceRegistry)
            .addResource("cache/infinispan/functional/Item.hbm.xml")
            .addResource("cache/infinispan/functional/Customer.hbm.xml")
            .addResource("cache/infinispan/functional/Contact.hbm.xml").addAnnotatedClass(Age.class);

    Metadata metadata = metadataSources.buildMetadata();
    for (PersistentClass entityBinding : metadata.getEntityBindings()) {
        if (entityBinding instanceof RootClass) {
            ((RootClass) entityBinding).setCacheConcurrencyStrategy("transactional");
        }/* w  w  w  .j  av  a 2 s. co  m*/
    }
    for (Collection collectionBinding : metadata.getCollectionBindings()) {
        collectionBinding.setCacheConcurrencyStrategy("transactional");
    }

    sessionFactory = metadata.buildSessionFactory();
    tm = com.arjuna.ats.jta.TransactionManager.transactionManager();
}