HHH-11173 : test case
This commit is contained in:
parent
518d58e6b0
commit
2b9cdace85
|
@ -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() {
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue