Example usage for org.hibernate.boot.spi InFlightMetadataCollector addDenormalizedTable

List of usage examples for org.hibernate.boot.spi InFlightMetadataCollector addDenormalizedTable

Introduction

In this page you can find the example usage for org.hibernate.boot.spi InFlightMetadataCollector addDenormalizedTable.

Prototype

Table addDenormalizedTable(String schema, String catalog, String name, boolean isAbstract, String subselect,
        Table includedTable) throws DuplicateMappingException;

Source Link

Document

Adds a 'denormalized table' to this repository.

Usage

From source file:org.grails.orm.hibernate.cfg.GrailsDomainBinder.java

License:Apache License

public void bindUnionSubclass(HibernatePersistentEntity subClass, UnionSubclass unionSubclass,
        InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException {

    Mapping subMapping = getMapping(subClass.getJavaClass());

    if (unionSubclass.getEntityPersisterClass() == null) {
        unionSubclass.getRootClass().setEntityPersisterClass(UnionSubclassEntityPersister.class);
    }// www .ja v a 2 s .c o  m

    String schema = subMapping != null && subMapping.getTable().getSchema() != null
            ? subMapping.getTable().getSchema()
            : null;

    String catalog = subMapping != null && subMapping.getTable().getCatalog() != null
            ? subMapping.getTable().getCatalog()
            : null;

    Table denormalizedSuperTable = unionSubclass.getSuperclass().getTable();
    Table mytable = mappings.addDenormalizedTable(schema, catalog,
            getTableName(subClass, sessionFactoryBeanName),
            unionSubclass.isAbstract() != null && unionSubclass.isAbstract(), null, denormalizedSuperTable);
    unionSubclass.setTable(mytable);
    unionSubclass.setClassName(subClass.getName());

    LOG.info("Mapping union-subclass: " + unionSubclass.getEntityName() + " -> "
            + unionSubclass.getTable().getName());

    createClassProperties(subClass, unionSubclass, mappings, sessionFactoryBeanName);

}