Example usage for org.hibernate.persister.entity EntityPersister hasCache

List of usage examples for org.hibernate.persister.entity EntityPersister hasCache

Introduction

In this page you can find the example usage for org.hibernate.persister.entity EntityPersister hasCache.

Prototype

@Deprecated
boolean hasCache();

Source Link

Document

Does this class have a cache.

Usage

From source file:com.fiveamsolutions.nci.commons.test.AbstractHibernateTestCase.java

License:Open Source License

/**
 * In JUnit3x you would normally override the setUp() and add your own functionality locally however, in JUnit4 to
 * override simply define your method and give it the <code>@Before annotation</code>. Doing so will cause that
 * method to be invoked after the parent class's setUp().
 *//*from   w ww. j  a  v a2  s  .c  om*/
@SuppressWarnings("unchecked")
@Before
public final void setUp() {

    Transaction tx = HibernateUtil.getHibernateHelper().beginTransaction();
    SchemaExport se = new SchemaExport(HibernateUtil.getHibernateHelper().getConfiguration());
    se.drop(false, true);
    se.create(false, true);
    tx.commit();

    // clean up the hibernate second level cache between runs
    SessionFactory sf = getCurrentSession().getSessionFactory();
    Map<?, EntityPersister> classMetadata = sf.getAllClassMetadata();
    for (EntityPersister ep : classMetadata.values()) {
        if (ep.hasCache()) {
            sf.evictEntity(ep.getCacheAccessStrategy().getRegion().getName());
        }
    }

    Map<?, AbstractCollectionPersister> collMetadata = sf.getAllCollectionMetadata();
    for (AbstractCollectionPersister acp : collMetadata.values()) {
        if (acp.hasCache()) {
            sf.evictCollection(acp.getCacheAccessStrategy().getRegion().getName());
        }
    }
    transaction = HibernateUtil.getHibernateHelper().beginTransaction();

}

From source file:com.webbfontaine.valuewebb.action.rimm.CacheCleaner.java

License:Open Source License

public Object clean() {

    if (StringUtils.trimToNull(entityClass) != null) {

        EntityManager entityManager = Utils.getEntityManager();
        SessionFactory sf = ((Session) entityManager.getDelegate()).getSessionFactory();
        EntityPersister classMetadata = (EntityPersister) sf.getClassMetadata(entityClass);
        if (classMetadata != null && classMetadata.hasCache()) {
            LOGGER.info("Evicting cache for {0}", entityClass);
            sf.evictEntity(entityClass);
            sf.evictQueries();//from  w  w  w  .  ja v  a2 s  . c om
            InfoHandling.getInstance().setInfoList("Cache evicted");
        } else {
            ErrorHandling.addFacesMessageError(null, "Entity is not cached");
        }
    }
    return "";
}

From source file:fr.keyconsulting.oliphant.NotifyListener.java

License:Open Source License

public boolean isKnownToBeStaleInL2(Object object, EventSource session) {
    final EntityPersister persister = sessionFactory.getEntityPersister(session.getEntityName(object));
    String uid = getUid(object, session);
    if (!versions.containsKey(uid)) {
        return false;
    }// w  ww .jav  a 2s.c om
    if (persister.isVersioned()) {
        if (persister.hasCache() && session.getCacheMode().isGetEnabled()) {
            final EntityRegionAccessStrategy cacheAccessStrategy = persister.getCacheAccessStrategy();
            if (cacheAccessStrategy == null) {
                return false;
            }
            final CacheKey ck = new CacheKey(session.getIdentifier(object), persister.getIdentifierType(),
                    persister.getRootEntityName(), session.getEntityMode(), session.getFactory());
            CacheEntry cachedObject = (CacheEntry) cacheAccessStrategy.get(ck, Long.MAX_VALUE);
            if (cachedObject == null) {
                return false;
            }
            if (Base64.encodeBytes(cachedObject.getDisassembledState()[persister.getVersionProperty()]
                    .toString().getBytes()) != versions.get(uid)) {
                return true;
            }
        }
    }
    return false;
}

From source file:fr.keyconsulting.oliphant.NotifyListener.java

License:Open Source License

public void evictFromL2(Object object, EventSource session) {
    final EntityPersister persister = sessionFactory.getEntityPersister(session.getEntityName(object));
    if (persister.isVersioned()) {
        if (persister.hasCache() && session.getCacheMode().isGetEnabled()) {
            final EntityRegionAccessStrategy cacheAccessStrategy = persister.getCacheAccessStrategy();
            if (cacheAccessStrategy == null) {
                return;
            }/*w w  w  . j  ava2  s.  com*/
            final CacheKey ck = new CacheKey(session.getIdentifier(object), persister.getIdentifierType(),
                    persister.getRootEntityName(), session.getEntityMode(), session.getFactory());
            cacheAccessStrategy.evict(ck);
            Serializable identifier = session.getIdentifier(object);
            LOG.debug("* Object " + identifier + " evicted from L2");
        }
    }
}

From source file:gov.nih.nci.firebird.test.AbstractHibernateTestCase.java

License:Open Source License

/**
 * Method that runs before the test to clean up the db and start the transaction.
 *//*www.ja v  a 2 s  .c  om*/
@SuppressWarnings("unchecked")
@Before
public void setUp() throws Exception {
    // clean up the hibernate second level cache between runs
    SessionFactory sf = getCurrentSession().getSessionFactory();
    Map<String, EntityPersister> classMetadata = sf.getAllClassMetadata();
    for (EntityPersister ep : classMetadata.values()) {
        if (ep.hasCache()) {
            sf.evictEntity(ep.getCacheAccessStrategy().getRegion().getName());
        }
    }

    Map<?, AbstractCollectionPersister> collMetadata = sf.getAllCollectionMetadata();
    for (AbstractCollectionPersister acp : collMetadata.values()) {
        if (acp.hasCache()) {
            sf.evictCollection(acp.getCacheAccessStrategy().getRegion().getName());
        }
    }
    transaction = helper.beginTransaction();
}