Example usage for org.hibernate.stat NaturalIdCacheStatistics getElementCountInMemory

List of usage examples for org.hibernate.stat NaturalIdCacheStatistics getElementCountInMemory

Introduction

In this page you can find the example usage for org.hibernate.stat NaturalIdCacheStatistics getElementCountInMemory.

Prototype

long getElementCountInMemory();

Source Link

Usage

From source file:org.apache.ignite.cache.hibernate.GridHibernateL2CacheSelfTest.java

License:Apache License

/**
 * @param accessType Cache access type.//w w  w  .j av a2 s.  co  m
 * @throws Exception If failed.
 */
private void testRegionClear(AccessType accessType) throws Exception {
    createSessionFactories(accessType);

    try {
        final int ENTITY_CNT = 100;

        Session ses = sesFactory1.openSession();

        try {
            Transaction tx = ses.beginTransaction();

            for (int i = 0; i < ENTITY_CNT; i++) {
                Entity e = new Entity(i, "name-" + i);

                Collection<ChildEntity> children = new ArrayList<>();

                for (int j = 0; j < 3; j++)
                    children.add(new ChildEntity());

                e.setChildren(children);

                ses.save(e);
            }

            tx.commit();
        } finally {
            ses.close();
        }

        loadEntities(sesFactory2, ENTITY_CNT);

        SecondLevelCacheStatistics stats1 = sesFactory1.getStatistics()
                .getSecondLevelCacheStatistics(ENTITY_NAME);
        SecondLevelCacheStatistics stats2 = sesFactory2.getStatistics()
                .getSecondLevelCacheStatistics(ENTITY_NAME);

        NaturalIdCacheStatistics idStats1 = sesFactory1.getStatistics()
                .getNaturalIdCacheStatistics(NATURAL_ID_REGION);
        NaturalIdCacheStatistics idStats2 = sesFactory2.getStatistics()
                .getNaturalIdCacheStatistics(NATURAL_ID_REGION);

        SecondLevelCacheStatistics colStats1 = sesFactory1.getStatistics()
                .getSecondLevelCacheStatistics(CHILD_COLLECTION_REGION);
        SecondLevelCacheStatistics colStats2 = sesFactory2.getStatistics()
                .getSecondLevelCacheStatistics(CHILD_COLLECTION_REGION);

        assertEquals(ENTITY_CNT, stats1.getElementCountInMemory());
        assertEquals(ENTITY_CNT, stats2.getElementCountInMemory());

        assertEquals(ENTITY_CNT, idStats1.getElementCountInMemory());
        assertEquals(ENTITY_CNT, idStats2.getElementCountInMemory());

        assertEquals(ENTITY_CNT, colStats1.getElementCountInMemory());
        assertEquals(ENTITY_CNT, colStats2.getElementCountInMemory());

        // Test cache is cleared after update query.

        ses = sesFactory1.openSession();

        try {
            Transaction tx = ses.beginTransaction();

            ses.createQuery("delete from " + ENTITY_NAME + " where name='no such name'").executeUpdate();

            ses.createQuery("delete from " + ChildEntity.class.getName() + " where id=-1").executeUpdate();

            tx.commit();
        } finally {
            ses.close();
        }

        assertEquals(0, stats1.getElementCountInMemory());
        assertEquals(0, stats2.getElementCountInMemory());

        assertEquals(0, idStats1.getElementCountInMemory());
        assertEquals(0, idStats2.getElementCountInMemory());

        assertEquals(0, colStats1.getElementCountInMemory());
        assertEquals(0, colStats2.getElementCountInMemory());

        // Load some data in cache.

        loadEntities(sesFactory1, 10);

        assertEquals(10, stats1.getElementCountInMemory());
        assertEquals(10, stats2.getElementCountInMemory());
        assertEquals(10, idStats1.getElementCountInMemory());
        assertEquals(10, idStats2.getElementCountInMemory());

        // Test evictAll method.

        sesFactory2.getCache().evictEntityRegion(ENTITY_NAME);

        assertEquals(0, stats1.getElementCountInMemory());
        assertEquals(0, stats2.getElementCountInMemory());

        sesFactory2.getCache().evictNaturalIdRegion(ENTITY_NAME);

        assertEquals(0, idStats1.getElementCountInMemory());
        assertEquals(0, idStats2.getElementCountInMemory());

        sesFactory2.getCache().evictCollectionRegion(CHILD_COLLECTION_REGION);

        assertEquals(0, colStats1.getElementCountInMemory());
        assertEquals(0, colStats2.getElementCountInMemory());
    } finally {
        cleanup();
    }
}