Search in sources :

Example 1 with UnionSubclass

use of org.hibernate.mapping.UnionSubclass in project hibernate-orm by hibernate.

the class ModelBinder method bindUnionSubclassEntities.

private void bindUnionSubclassEntities(EntitySource entitySource, PersistentClass superEntityDescriptor) {
    for (IdentifiableTypeSource subType : entitySource.getSubTypes()) {
        final UnionSubclass subEntityDescriptor = new UnionSubclass(superEntityDescriptor, metadataBuildingContext);
        bindUnionSubclassEntity((SubclassEntitySourceImpl) subType, subEntityDescriptor);
        superEntityDescriptor.addSubclass(subEntityDescriptor);
        entitySource.getLocalMetadataBuildingContext().getMetadataCollector().addEntityBinding(subEntityDescriptor);
    }
}
Also used : IdentifiableTypeSource(org.hibernate.boot.model.source.spi.IdentifiableTypeSource) UnionSubclass(org.hibernate.mapping.UnionSubclass)

Example 2 with UnionSubclass

use of org.hibernate.mapping.UnionSubclass in project hibernate-orm by hibernate.

the class IdTableHelper method needsIdTable.

public boolean needsIdTable(PersistentClass entityBinding) {
    // need id table if the entity has secondary tables (joins)
    if (entityBinding.getJoinClosureSpan() > 0) {
        return true;
    }
    // need an id table if the entity is part of either a JOINED or UNION inheritance
    // hierarchy.  We do not allow inheritance strategy mixing, so work on that assumption
    // here...
    final RootClass rootEntityBinding = entityBinding.getRootClass();
    final Iterator itr = rootEntityBinding.getSubclassIterator();
    if (itr.hasNext()) {
        final Subclass subclassEntityBinding = (Subclass) itr.next();
        if (subclassEntityBinding instanceof JoinedSubclass || subclassEntityBinding instanceof UnionSubclass) {
            return true;
        }
    }
    return false;
}
Also used : RootClass(org.hibernate.mapping.RootClass) JoinedSubclass(org.hibernate.mapping.JoinedSubclass) UnionSubclass(org.hibernate.mapping.UnionSubclass) Subclass(org.hibernate.mapping.Subclass) Iterator(java.util.Iterator) UnionSubclass(org.hibernate.mapping.UnionSubclass) JoinedSubclass(org.hibernate.mapping.JoinedSubclass)

Example 3 with UnionSubclass

use of org.hibernate.mapping.UnionSubclass in project hibernate-orm by hibernate.

the class PersistentClassVisitorTest method testProperCallbacks.

@Test
public void testProperCallbacks() {
    PersistentClassVisitorValidator vv = new PersistentClassVisitorValidator();
    new RootClass(metadataBuildingContext).accept(vv);
    new Subclass(new RootClass(metadataBuildingContext), metadataBuildingContext).accept(vv);
    new JoinedSubclass(new RootClass(metadataBuildingContext), metadataBuildingContext).accept(vv);
    new SingleTableSubclass(new RootClass(metadataBuildingContext), metadataBuildingContext).accept(vv);
    new UnionSubclass(new RootClass(metadataBuildingContext), metadataBuildingContext).accept(vv);
}
Also used : RootClass(org.hibernate.mapping.RootClass) JoinedSubclass(org.hibernate.mapping.JoinedSubclass) SingleTableSubclass(org.hibernate.mapping.SingleTableSubclass) UnionSubclass(org.hibernate.mapping.UnionSubclass) Subclass(org.hibernate.mapping.Subclass) UnionSubclass(org.hibernate.mapping.UnionSubclass) JoinedSubclass(org.hibernate.mapping.JoinedSubclass) SingleTableSubclass(org.hibernate.mapping.SingleTableSubclass) Test(org.junit.Test)

Aggregations

UnionSubclass (org.hibernate.mapping.UnionSubclass)3 JoinedSubclass (org.hibernate.mapping.JoinedSubclass)2 RootClass (org.hibernate.mapping.RootClass)2 Subclass (org.hibernate.mapping.Subclass)2 Iterator (java.util.Iterator)1 IdentifiableTypeSource (org.hibernate.boot.model.source.spi.IdentifiableTypeSource)1 SingleTableSubclass (org.hibernate.mapping.SingleTableSubclass)1 Test (org.junit.Test)1