Java 类org.hibernate.type.BagType 实例源码

项目:lams    文件:FetchProfile.java   
/**
 * Add a fetch to the profile.
 *
 * @param fetch The fetch to add.
 */
public void addFetch(final Fetch fetch) {
    final String fetchAssociactionRole = fetch.getAssociation().getRole();
    final Type associationType = fetch.getAssociation().getOwner().getPropertyType( fetch.getAssociation().getAssociationPath() );
    if ( associationType.isCollectionType() ) {
        LOG.tracev( "Handling request to add collection fetch [{0}]", fetchAssociactionRole );

        // couple of things for which to account in the case of collection
        // join fetches
        if ( Fetch.Style.JOIN == fetch.getStyle() ) {
            // first, if this is a bag we need to ignore it if we previously
            // processed collection join fetches
            if ( BagType.class.isInstance( associationType ) ) {
                if ( containsJoinFetchedCollection ) {
                    LOG.containsJoinFetchedCollection( fetchAssociactionRole );
                    // EARLY EXIT!!!
                    return;
                }
            }

            // also, in cases where we are asked to add a collection join
            // fetch where we had already added a bag join fetch previously,
            // we need to go back and ignore that previous bag join fetch.
            if ( containsJoinFetchedBag ) {
                // just for safety...
                if ( fetches.remove( bagJoinFetch.getAssociation().getRole() ) != bagJoinFetch ) {
                    LOG.unableToRemoveBagJoinFetch();
                }
                bagJoinFetch = null;
                containsJoinFetchedBag = false;
            }

            containsJoinFetchedCollection = true;
        }
    }
    fetches.put( fetchAssociactionRole, fetch );
}
项目:hibernate-semantic-query    文件:PersisterHelper.java   
public static CollectionClassification interpretCollectionClassification(CollectionType collectionType) {
    if ( collectionType instanceof BagType
            || collectionType instanceof IdentifierBagType ) {
        return CollectionClassification.BAG;
    }
    else if ( collectionType instanceof ListType
            || collectionType instanceof ArrayType ) {
        return CollectionClassification.LIST;
    }
    else if ( collectionType instanceof SetType
            || collectionType instanceof OrderedSetType
            || collectionType instanceof SortedSetType ) {
        return CollectionClassification.SET;
    }
    else if ( collectionType instanceof MapType
            || collectionType instanceof OrderedMapType
            || collectionType instanceof SortedMapType ) {
        return CollectionClassification.MAP;
    }
    else {
        final Class javaType = collectionType.getReturnedClass();
        if ( Set.class.isAssignableFrom( javaType ) ) {
            return CollectionClassification.SET;
        }
        else if ( Map.class.isAssignableFrom( javaType ) ) {
            return CollectionClassification.MAP;
        }
        else if ( List.class.isAssignableFrom( javaType ) ) {
            return CollectionClassification.LIST;
        }

        return CollectionClassification.BAG;
    }
}
项目:lams    文件:BasicLoader.java   
private boolean isBag(CollectionPersister collectionPersister) {
    return collectionPersister.getCollectionType().getClass().isAssignableFrom( BagType.class );
}
项目:cacheonix-core    文件:BasicLoader.java   
private boolean isBag(CollectionPersister collectionPersister) {
    return collectionPersister.getCollectionType().getClass().isAssignableFrom( BagType.class );
}