Example usage for org.hibernate.cache.spi CacheKeysFactory getEntityId

List of usage examples for org.hibernate.cache.spi CacheKeysFactory getEntityId

Introduction

In this page you can find the example usage for org.hibernate.cache.spi CacheKeysFactory getEntityId.

Prototype

Object getEntityId(Object cacheKey);

Source Link

Usage

From source file:org.infinispan.test.hibernate.cache.CacheKeySerializationTest.java

License:LGPL

private void testId(CacheKeysFactory cacheKeysFactory, String entityName, Object id) throws Exception {
    final SessionFactoryImplementor sessionFactory = getSessionFactory(cacheKeysFactory.getClass().getName());
    final EntityPersister persister = sessionFactory.getEntityPersister(entityName);
    final Object key = cacheKeysFactory.createEntityKey(id, persister, sessionFactory, null);

    final ByteArrayOutputStream baos = new ByteArrayOutputStream();
    final ObjectOutputStream oos = new ObjectOutputStream(baos);
    oos.writeObject(key);/*www .  ja  va2  s.c om*/

    final ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
    final Object keyClone = ois.readObject();

    try {
        assertEquals(key, keyClone);
        assertEquals(keyClone, key);

        assertEquals(key.hashCode(), keyClone.hashCode());

        final Object idClone = cacheKeysFactory.getEntityId(keyClone);

        assertEquals(id.hashCode(), idClone.hashCode());
        assertEquals(id, idClone);
        assertEquals(idClone, id);
        assertTrue(persister.getIdentifierType().isEqual(id, idClone, sessionFactory));
        assertTrue(persister.getIdentifierType().isEqual(idClone, id, sessionFactory));
        sessionFactory.close();
    } finally {
        sessionFactory.close();
    }
}