HHH-11173 : test case

This commit is contained in:
Gail Badner 2017-01-23 15:08:20 +00:00
parent 518d58e6b0
commit 2b9cdace85
2 changed files with 118 additions and 0 deletions

View File

@ -8,6 +8,7 @@ package org.hibernate.test.bytecode.enhancement;
import javassist.CtClass; import javassist.CtClass;
import org.hibernate.test.bytecode.enhancement.lazy.cache.LazyInCacheTestTask;
import org.hibernate.test.bytecode.enhancement.lazy.group.LazyGroupUpdateTestTask; import org.hibernate.test.bytecode.enhancement.lazy.group.LazyGroupUpdateTestTask;
import org.hibernate.test.bytecode.enhancement.lazy.group.SimpleLazyGroupUpdateTestTask; import org.hibernate.test.bytecode.enhancement.lazy.group.SimpleLazyGroupUpdateTestTask;
import org.hibernate.test.bytecode.enhancement.association.InheritedAttributeAssociationTestTask; import org.hibernate.test.bytecode.enhancement.association.InheritedAttributeAssociationTestTask;
@ -118,6 +119,12 @@ public class EnhancerTest extends BaseUnitTestCase {
} ); } );
} }
@Test
@TestForIssue( jiraKey = "HHH-11173" )
public void testLazyCache() {
EnhancerTestUtils.runEnhancerTestTask( LazyInCacheTestTask.class );
}
@Test @Test
@TestForIssue( jiraKey = "HHH-10252" ) @TestForIssue( jiraKey = "HHH-10252" )
public void testCascadeDelete() { public void testCascadeDelete() {

View File

@ -0,0 +1,111 @@
/*
* 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.test.bytecode.enhancement.lazy.cache;
import org.hibernate.Session;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.Type;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
import org.hibernate.test.bytecode.enhancement.AbstractEnhancerTestTask;
import org.junit.Assert;
import javax.persistence.Basic;
import javax.persistence.Cacheable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import java.util.ArrayList;
import java.util.List;
/**
* @author Luis Barreiro
*/
public class LazyInCacheTestTask extends AbstractEnhancerTestTask {
public Class<?>[] getAnnotatedClasses() {
return new Class<?>[]{Product.class, Order.class, Tag.class};
}
public void prepare() {
Configuration cfg = new Configuration();
cfg.setProperty( Environment.ENABLE_LAZY_LOAD_NO_TRANS, "true" );
cfg.setProperty( Environment.USE_SECOND_LEVEL_CACHE, "true" );
prepare( cfg );
}
public void execute() {
Session entityManager = getFactory().openSession();
Order order = new Order();
Product product = new Product();
order.products.add( product );
order.data = "some data".getBytes();
entityManager.getTransaction().begin();
entityManager.persist( product );
entityManager.persist( order );
entityManager.getTransaction().commit();
long orderId = order.id;
entityManager = getFactory().openSession();
order = entityManager.get( Order.class, orderId );
Assert.assertEquals( 1, order.products.size() );
entityManager.close();
}
protected void cleanup() {
}
@Entity
@Cache( usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE )
public static class Order {
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
long id;
@OneToMany
List<Product> products = new ArrayList<>();
@OneToMany
List<Tag> tags = new ArrayList<>();
@Basic( fetch = FetchType.LAZY )
@Column
@Type( type = "org.hibernate.type.BinaryType" )
private byte[] data;
}
@Entity
public static class Product {
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
long id;
String name;
}
@Entity
public static class Tag {
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
long id;
String name;
}
}