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

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

Introduction

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

Prototype

Object createEntityKey(Object id, EntityPersister persister, SessionFactoryImplementor factory,
            String tenantIdentifier);

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);/*  w w w.j av a 2 s .co m*/

    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();
    }
}