Search in sources :

Example 1 with State

use of org.hibernate.test.cache.infinispan.functional.entities.State in project hibernate-orm by hibernate.

the class ReadWriteTest method testNaturalIdLoaderCached.

@Test
public void testNaturalIdLoaderCached() throws Exception {
    final Statistics stats = sessionFactory().getStatistics();
    stats.setStatisticsEnabled(true);
    stats.clear();
    assertEquals("NaturalId Cache Hits", 0, stats.getNaturalIdCacheHitCount());
    assertEquals("NaturalId Cache Misses", 0, stats.getNaturalIdCacheMissCount());
    assertEquals("NaturalId Cache Puts", 0, stats.getNaturalIdCachePutCount());
    assertEquals("NaturalId Cache Queries", 0, stats.getNaturalIdQueryExecutionCount());
    saveSomeCitizens();
    assertEquals("NaturalId Cache Hits", 0, stats.getNaturalIdCacheHitCount());
    assertEquals("NaturalId Cache Misses", 0, stats.getNaturalIdCacheMissCount());
    assertEquals("NaturalId Cache Puts", 2, stats.getNaturalIdCachePutCount());
    assertEquals("NaturalId Cache Queries", 0, stats.getNaturalIdQueryExecutionCount());
    //Try NaturalIdLoadAccess after insert
    final Citizen citizen = withTxSessionApply(s -> {
        State france = ReadWriteTest.this.getState(s, "Ile de France");
        NaturalIdLoadAccess<Citizen> naturalIdLoader = s.byNaturalId(Citizen.class);
        naturalIdLoader.using("ssn", "1234").using("state", france);
        stats.clear();
        Citizen c = naturalIdLoader.load();
        assertNotNull(c);
        assertEquals("NaturalId Cache Hits", 1, stats.getNaturalIdCacheHitCount());
        assertEquals("NaturalId Cache Misses", 0, stats.getNaturalIdCacheMissCount());
        assertEquals("NaturalId Cache Puts", 0, stats.getNaturalIdCachePutCount());
        assertEquals("NaturalId Cache Queries", 0, stats.getNaturalIdQueryExecutionCount());
        markRollbackOnly(s);
        return c;
    });
    // TODO: Clear caches manually via cache manager (it's faster!!)
    cleanupCache();
    TIME_SERVICE.advance(1);
    stats.setStatisticsEnabled(true);
    stats.clear();
    //Try NaturalIdLoadAccess
    withTxSession(s -> {
        Citizen loadedCitizen = (Citizen) s.get(Citizen.class, citizen.getId());
        assertNotNull(loadedCitizen);
        assertEquals("NaturalId Cache Hits", 0, stats.getNaturalIdCacheHitCount());
        assertEquals("NaturalId Cache Misses", 0, stats.getNaturalIdCacheMissCount());
        assertEquals("NaturalId Cache Puts", 1, stats.getNaturalIdCachePutCount());
        assertEquals("NaturalId Cache Queries", 0, stats.getNaturalIdQueryExecutionCount());
        markRollbackOnly(s);
    });
    // Try NaturalIdLoadAccess after load
    withTxSession(s -> {
        State france = ReadWriteTest.this.getState(s, "Ile de France");
        NaturalIdLoadAccess naturalIdLoader = s.byNaturalId(Citizen.class);
        naturalIdLoader.using("ssn", "1234").using("state", france);
        stats.setStatisticsEnabled(true);
        stats.clear();
        Citizen loadedCitizen = (Citizen) naturalIdLoader.load();
        assertNotNull(loadedCitizen);
        assertEquals("NaturalId Cache Hits", 1, stats.getNaturalIdCacheHitCount());
        assertEquals("NaturalId Cache Misses", 0, stats.getNaturalIdCacheMissCount());
        assertEquals("NaturalId Cache Puts", 0, stats.getNaturalIdCachePutCount());
        assertEquals("NaturalId Cache Queries", 0, stats.getNaturalIdQueryExecutionCount());
        markRollbackOnly(s);
    });
}
Also used : NaturalIdLoadAccess(org.hibernate.NaturalIdLoadAccess) State(org.hibernate.test.cache.infinispan.functional.entities.State) Citizen(org.hibernate.test.cache.infinispan.functional.entities.Citizen) Statistics(org.hibernate.stat.Statistics) SecondLevelCacheStatistics(org.hibernate.stat.SecondLevelCacheStatistics) Test(org.junit.Test)

Example 2 with State

use of org.hibernate.test.cache.infinispan.functional.entities.State in project hibernate-orm by hibernate.

the class ReadWriteTest method testNaturalIdCached.

@Test
public void testNaturalIdCached() throws Exception {
    saveSomeCitizens();
    // Clear the cache before the transaction begins
    cleanupCache();
    TIME_SERVICE.advance(1);
    withTxSession(s -> {
        State france = ReadWriteTest.this.getState(s, "Ile de France");
        Criteria criteria = s.createCriteria(Citizen.class);
        criteria.add(Restrictions.naturalId().set("ssn", "1234").set("state", france));
        criteria.setCacheable(true);
        Statistics stats = sessionFactory().getStatistics();
        stats.setStatisticsEnabled(true);
        stats.clear();
        assertEquals("Cache hits should be empty", 0, stats.getNaturalIdCacheHitCount());
        List results = criteria.list();
        assertEquals(1, results.size());
        assertEquals("NaturalId Cache Hits", 0, stats.getNaturalIdCacheHitCount());
        assertEquals("NaturalId Cache Misses", 1, stats.getNaturalIdCacheMissCount());
        assertEquals("NaturalId Cache Puts", 1, stats.getNaturalIdCachePutCount());
        assertEquals("NaturalId Cache Queries", 1, stats.getNaturalIdQueryExecutionCount());
        criteria.list();
        assertEquals("NaturalId Cache Hits", 0, stats.getNaturalIdCacheHitCount());
        assertEquals("NaturalId Cache Misses", 1, stats.getNaturalIdCacheMissCount());
        assertEquals("NaturalId Cache Puts", 1, stats.getNaturalIdCachePutCount());
        assertEquals("NaturalId Cache Queries", 1, stats.getNaturalIdQueryExecutionCount());
        markRollbackOnly(s);
    });
}
Also used : State(org.hibernate.test.cache.infinispan.functional.entities.State) ArrayList(java.util.ArrayList) List(java.util.List) Criteria(org.hibernate.Criteria) Statistics(org.hibernate.stat.Statistics) SecondLevelCacheStatistics(org.hibernate.stat.SecondLevelCacheStatistics) Test(org.junit.Test)

Example 3 with State

use of org.hibernate.test.cache.infinispan.functional.entities.State in project hibernate-orm by hibernate.

the class ReadWriteTest method getState.

private State getState(Session s, String name) {
    Criteria criteria = s.createCriteria(State.class);
    criteria.add(Restrictions.eq("name", name));
    criteria.setCacheable(true);
    return (State) criteria.list().get(0);
}
Also used : State(org.hibernate.test.cache.infinispan.functional.entities.State) Criteria(org.hibernate.Criteria)

Example 4 with State

use of org.hibernate.test.cache.infinispan.functional.entities.State in project hibernate-orm by hibernate.

the class NaturalIdInvalidationTest method getCitizenWithCriteria.

private void getCitizenWithCriteria(SessionFactory sf) throws Exception {
    withTxSession(sf, s -> {
        State france = getState(s, "Ile de France");
        Criteria criteria = s.createCriteria(Citizen.class);
        criteria.add(Restrictions.naturalId().set("ssn", "1234").set("state", france));
        criteria.setCacheable(true);
        criteria.list();
    });
}
Also used : State(org.hibernate.test.cache.infinispan.functional.entities.State) Criteria(org.hibernate.Criteria)

Example 5 with State

use of org.hibernate.test.cache.infinispan.functional.entities.State in project hibernate-orm by hibernate.

the class NaturalIdInvalidationTest method saveSomeCitizens.

private void saveSomeCitizens(SessionFactory sf) throws Exception {
    final Citizen c1 = new Citizen();
    c1.setFirstname("Emmanuel");
    c1.setLastname("Bernard");
    c1.setSsn("1234");
    final State france = new State();
    france.setName("Ile de France");
    c1.setState(france);
    final Citizen c2 = new Citizen();
    c2.setFirstname("Gavin");
    c2.setLastname("King");
    c2.setSsn("000");
    final State australia = new State();
    australia.setName("Australia");
    c2.setState(australia);
    withTxSession(sf, s -> {
        s.persist(australia);
        s.persist(france);
        s.persist(c1);
        s.persist(c2);
    });
}
Also used : State(org.hibernate.test.cache.infinispan.functional.entities.State) Citizen(org.hibernate.test.cache.infinispan.functional.entities.Citizen)

Aggregations

State (org.hibernate.test.cache.infinispan.functional.entities.State)8 Criteria (org.hibernate.Criteria)5 Citizen (org.hibernate.test.cache.infinispan.functional.entities.Citizen)4 ArrayList (java.util.ArrayList)2 SecondLevelCacheStatistics (org.hibernate.stat.SecondLevelCacheStatistics)2 Statistics (org.hibernate.stat.Statistics)2 Test (org.junit.Test)2 List (java.util.List)1 NaturalIdLoadAccess (org.hibernate.NaturalIdLoadAccess)1