Example usage for org.hibernate.type CollectionType UNFETCHED_COLLECTION

List of usage examples for org.hibernate.type CollectionType UNFETCHED_COLLECTION

Introduction

In this page you can find the example usage for org.hibernate.type CollectionType UNFETCHED_COLLECTION.

Prototype

Object UNFETCHED_COLLECTION

To view the source code for org.hibernate.type CollectionType UNFETCHED_COLLECTION.

Click Source Link

Usage

From source file:com.miranteinfo.seam.hibernate.HibernateCascade.java

License:Open Source License

/**
 * Cascade to the collection elements//from   w w w  .j ava 2s .c o  m
 */
private void cascadeCollectionElements(final Object child, final CollectionType collectionType,
        final CascadeStyle style, final Type elemType, final Object anything,
        final boolean isCascadeDeleteEnabled) throws HibernateException {
    // we can't cascade to non-embedded elements
    boolean embeddedElements = eventSource.getEntityMode() != EntityMode.DOM4J
            || ((EntityType) collectionType.getElementType(eventSource.getFactory())).isEmbeddedInXML();

    boolean reallyDoCascade = style.reallyDoCascade(action) && embeddedElements
            && child != CollectionType.UNFETCHED_COLLECTION;

    if (reallyDoCascade) {
        if (log.isTraceEnabled()) {
            log.trace("cascade " + action + " for collection: " + collectionType.getRole());
        }

        Iterator iter = action.getCascadableChildrenIterator(eventSource, collectionType, child);
        while (iter.hasNext()) {
            cascadeProperty(iter.next(), elemType, style, anything, isCascadeDeleteEnabled);
        }

        if (log.isTraceEnabled()) {
            log.trace("done cascade " + action + " for collection: " + collectionType.getRole());
        }
    }

    final boolean deleteOrphans = hasOrphanDelete(style) && action.deleteOrphans() && elemType.isEntityType()
            && child instanceof PersistentCollection; //a newly instantiated collection can't have orphans

    if (deleteOrphans) { // handle orphaned entities!!
        if (log.isTraceEnabled()) {
            log.trace("deleting orphans for collection: " + collectionType.getRole());
        }

        // we can do the cast since orphan-delete does not apply to:
        // 1. newly instantiated collections
        // 2. arrays (we can't track orphans for detached arrays)
        final String entityName = collectionType.getAssociatedEntityName(eventSource.getFactory());
        deleteOrphans(entityName, (PersistentCollection) child);

        if (log.isTraceEnabled()) {
            log.trace("done deleting orphans for collection: " + collectionType.getRole());
        }
    }
}

From source file:org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOManyAttributeGetter.java

License:Open Source License

@Override
public Object get(Object target) throws HibernateException {
    // Check if there is already a persistentcollection
    PersistentCollection collection = PersistableListHolder.getInstance().getListMapping(target,
            getEStructuralFeature());//  www . j a  va 2  s .  c o m
    if (collection != null) {
        return collection;
    }

    InternalCDORevision revision = (InternalCDORevision) target;
    CDOList list = revision.getList(getEStructuralFeature(), 10);

    if (list instanceof WrappedHibernateList) {
        final WrappedHibernateList wrappedHibernateList = (WrappedHibernateList) list;
        if (((WrappedHibernateList) list).isUninitializedCollection()) {
            return CollectionType.UNFETCHED_COLLECTION;
        }
        final Object delegate = wrappedHibernateList.getDelegate();
        if (delegate instanceof PersistentCollection) {
            return delegate;
        }
    }

    // Wrap the moveablearraylist
    HibernateMoveableListWrapper wrapper = new HibernateMoveableListWrapper();
    wrapper.setEFeature(getEStructuralFeature());
    wrapper.setDelegate(list);

    // And return it
    return wrapper;
}

From source file:org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOManyReferenceGetter.java

License:Open Source License

@Override
public Object get(Object target) throws HibernateException {
    // Check if there is already a persistentcollection
    PersistentCollection collection = PersistableListHolder.getInstance().getListMapping(target,
            getEStructuralFeature());//from  w  w  w.  j  a v  a 2  s .  c  om
    if (collection != null) {
        return collection;
    }

    InternalCDORevision revision = (InternalCDORevision) target;
    CDOList list = revision.getList(getEStructuralFeature(), 10);

    if (list instanceof WrappedHibernateList) {
        final WrappedHibernateList wrappedHibernateList = (WrappedHibernateList) list;
        if (wrappedHibernateList.isUninitializedCollection()) {
            return CollectionType.UNFETCHED_COLLECTION;
        }
        final Object delegate = wrappedHibernateList.getDelegate();
        if (delegate instanceof PersistentCollection) {
            return delegate;
        }
    }

    // Wrap the moveablearraylist
    HibernateMoveableListWrapper wrapper = new HibernateMoveableListWrapper();
    wrapper.setEFeature(getEStructuralFeature());
    wrapper.setDelegate(list);

    // And return it
    return wrapper;
}