Search in sources :

Example 61 with HibernateProxy

use of org.hibernate.proxy.HibernateProxy in project BroadleafCommerce by BroadleafCommerce.

the class CandidateOrderOfferImpl method getOffer.

@Override
public Offer getOffer() {
    if (deproxiedOffer == null) {
        PostLoaderDao postLoaderDao = DefaultPostLoaderDao.getPostLoaderDao();
        if (postLoaderDao != null && offer.getId() != null) {
            Long id = offer.getId();
            deproxiedOffer = postLoaderDao.find(OfferImpl.class, id);
        } else if (offer instanceof HibernateProxy) {
            deproxiedOffer = HibernateUtils.deproxy(offer);
        } else {
            deproxiedOffer = offer;
        }
    }
    return deproxiedOffer;
}
Also used : DefaultPostLoaderDao(org.broadleafcommerce.common.persistence.DefaultPostLoaderDao) PostLoaderDao(org.broadleafcommerce.common.persistence.PostLoaderDao) HibernateProxy(org.hibernate.proxy.HibernateProxy)

Example 62 with HibernateProxy

use of org.hibernate.proxy.HibernateProxy in project BroadleafCommerce by BroadleafCommerce.

the class OrderAdjustmentImpl method getOffer.

@Override
public Offer getOffer() {
    if (deproxiedOffer == null) {
        PostLoaderDao postLoaderDao = DefaultPostLoaderDao.getPostLoaderDao();
        if (postLoaderDao != null && offer.getId() != null) {
            Long id = offer.getId();
            deproxiedOffer = postLoaderDao.find(OfferImpl.class, id);
        } else if (offer instanceof HibernateProxy) {
            deproxiedOffer = HibernateUtils.deproxy(offer);
        } else {
            deproxiedOffer = offer;
        }
    }
    return deproxiedOffer;
}
Also used : DefaultPostLoaderDao(org.broadleafcommerce.common.persistence.DefaultPostLoaderDao) PostLoaderDao(org.broadleafcommerce.common.persistence.PostLoaderDao) HibernateProxy(org.hibernate.proxy.HibernateProxy) AdminPresentationMergeOverride(org.broadleafcommerce.common.presentation.override.AdminPresentationMergeOverride)

Example 63 with HibernateProxy

use of org.hibernate.proxy.HibernateProxy in project BroadleafCommerce by BroadleafCommerce.

the class HibernateUtils method deproxy.

/**
 * <p>Ensure a domain object is an actual persisted object and not a Hibernate proxy object by getting its real implementation.
 *
 * <p>This is primarily useful when retrieving a lazy loaded object that has been subclassed and you have the intention of casting it.
 *
 * @param t the domain object to deproxy
 * @return the actual persisted object or the passed in object if it is not a Hibernate proxy
 */
public static <T> T deproxy(T t) {
    if (t instanceof HibernateProxy) {
        HibernateProxy proxy = (HibernateProxy) t;
        LazyInitializer lazyInitializer = proxy.getHibernateLazyInitializer();
        return (T) lazyInitializer.getImplementation();
    }
    return t;
}
Also used : LazyInitializer(org.hibernate.proxy.LazyInitializer) HibernateProxy(org.hibernate.proxy.HibernateProxy)

Example 64 with HibernateProxy

use of org.hibernate.proxy.HibernateProxy in project BroadleafCommerce by BroadleafCommerce.

the class CandidateFulfillmentGroupOfferImpl method getOffer.

@Override
public Offer getOffer() {
    if (deproxiedOffer == null) {
        PostLoaderDao postLoaderDao = DefaultPostLoaderDao.getPostLoaderDao();
        if (postLoaderDao != null && offer.getId() != null) {
            Long id = offer.getId();
            deproxiedOffer = postLoaderDao.find(OfferImpl.class, id);
        } else if (offer instanceof HibernateProxy) {
            deproxiedOffer = HibernateUtils.deproxy(offer);
        } else {
            deproxiedOffer = offer;
        }
    }
    return deproxiedOffer;
}
Also used : DefaultPostLoaderDao(org.broadleafcommerce.common.persistence.DefaultPostLoaderDao) PostLoaderDao(org.broadleafcommerce.common.persistence.PostLoaderDao) HibernateProxy(org.hibernate.proxy.HibernateProxy)

Example 65 with HibernateProxy

use of org.hibernate.proxy.HibernateProxy in project BroadleafCommerce by BroadleafCommerce.

the class OrderItemQualifierImpl method getOffer.

@Override
public Offer getOffer() {
    if (deproxiedOffer == null) {
        PostLoaderDao postLoaderDao = DefaultPostLoaderDao.getPostLoaderDao();
        if (postLoaderDao != null && offer.getId() != null) {
            Long id = offer.getId();
            deproxiedOffer = postLoaderDao.find(OfferImpl.class, id);
        } else if (offer instanceof HibernateProxy) {
            deproxiedOffer = HibernateUtils.deproxy(offer);
        } else {
            deproxiedOffer = offer;
        }
    }
    return deproxiedOffer;
}
Also used : OfferImpl(org.broadleafcommerce.core.offer.domain.OfferImpl) DefaultPostLoaderDao(org.broadleafcommerce.common.persistence.DefaultPostLoaderDao) PostLoaderDao(org.broadleafcommerce.common.persistence.PostLoaderDao) HibernateProxy(org.hibernate.proxy.HibernateProxy)

Aggregations

HibernateProxy (org.hibernate.proxy.HibernateProxy)130 Session (org.hibernate.Session)58 Test (org.junit.Test)56 LazyInitializer (org.hibernate.proxy.LazyInitializer)33 DefaultPostLoaderDao (org.broadleafcommerce.common.persistence.DefaultPostLoaderDao)16 PostLoaderDao (org.broadleafcommerce.common.persistence.PostLoaderDao)16 EntityEntry (org.hibernate.engine.spi.EntityEntry)13 Serializable (java.io.Serializable)11 Transaction (org.hibernate.Transaction)10 TransientObjectException (org.hibernate.TransientObjectException)10 EntityPersister (org.hibernate.persister.entity.EntityPersister)10 HibernateException (org.hibernate.HibernateException)8 AdminPresentationMergeOverride (org.broadleafcommerce.common.presentation.override.AdminPresentationMergeOverride)5 EntityKey (org.hibernate.engine.spi.EntityKey)4 PersistenceContext (org.hibernate.engine.spi.PersistenceContext)4 SessionFactoryImplementor (org.hibernate.engine.spi.SessionFactoryImplementor)4 Iterator (java.util.Iterator)3 ObjectDeletedException (org.hibernate.ObjectDeletedException)3 EventSource (org.hibernate.event.spi.EventSource)3 BigDecimal (java.math.BigDecimal)2