HHH-12746 : test case
This commit is contained in:
parent
6b0ef0a5c4
commit
f166b044a6
|
@ -0,0 +1,79 @@
|
|||
/*
|
||||
* Hibernate, Relational Persistence for Idiomatic Java
|
||||
*
|
||||
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||
*/
|
||||
package org.hibernate.cache.internal;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.Id;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
import org.hibernate.boot.Metadata;
|
||||
import org.hibernate.boot.MetadataSources;
|
||||
import org.hibernate.boot.SessionFactoryBuilder;
|
||||
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||
import org.hibernate.engine.spi.SessionFactoryImplementor;
|
||||
import org.hibernate.persister.entity.EntityPersister;
|
||||
import org.hibernate.service.spi.ServiceRegistryImplementor;
|
||||
|
||||
import org.hibernate.testing.TestForIssue;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
|
||||
/**
|
||||
* @author Gail Badner
|
||||
*/
|
||||
public class CacheKeyImplementationHashCodeTest {
|
||||
|
||||
@Test
|
||||
@TestForIssue( jiraKey = "HHH-12746")
|
||||
public void test() {
|
||||
ServiceRegistryImplementor serviceRegistry = (
|
||||
ServiceRegistryImplementor) new StandardServiceRegistryBuilder().build();
|
||||
MetadataSources ms = new MetadataSources( serviceRegistry );
|
||||
ms.addAnnotatedClass( AnEntity.class ).addAnnotatedClass( AnotherEntity.class );
|
||||
Metadata metadata = ms.buildMetadata();
|
||||
final SessionFactoryBuilder sfb = metadata.getSessionFactoryBuilder();
|
||||
SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor) sfb.build();
|
||||
|
||||
|
||||
CacheKeyImplementation anEntityCacheKey = createCacheKeyImplementation(
|
||||
1, sessionFactory.getMetamodel().entityPersister( AnEntity.class ), sessionFactory
|
||||
);
|
||||
CacheKeyImplementation anotherEntityCacheKey = createCacheKeyImplementation(
|
||||
1, sessionFactory.getMetamodel().entityPersister( AnotherEntity.class ), sessionFactory
|
||||
);
|
||||
assertFalse( anEntityCacheKey.equals( anotherEntityCacheKey ) );
|
||||
assertNotEquals( anEntityCacheKey.hashCode(), anotherEntityCacheKey.hashCode() );
|
||||
}
|
||||
|
||||
private CacheKeyImplementation createCacheKeyImplementation(
|
||||
int id,
|
||||
EntityPersister persister,
|
||||
SessionFactoryImplementor sfi) {
|
||||
return new CacheKeyImplementation( id, persister.getIdentifierType(), persister.getRootEntityName(), null, sfi );
|
||||
}
|
||||
|
||||
@Entity(name = "AnEntity")
|
||||
@Cache( usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
public static class AnEntity {
|
||||
@Id
|
||||
@GeneratedValue
|
||||
private int id;
|
||||
}
|
||||
|
||||
@Entity(name = "AnotherEntity")
|
||||
@Cache( usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
public static class AnotherEntity {
|
||||
@Id
|
||||
@GeneratedValue
|
||||
private int id;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue