[hibernate-commits] Hibernate SVN: r20976 - in annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations: filters and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Aug 29 17:49:22 EDT 2011


Author: alessandrolt
Date: 2011-08-29 17:49:22 -0400 (Mon, 29 Aug 2011)
New Revision: 20976

Added:
   annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/
   annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/Animal.java
   annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/Cat.java
   annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/InheritedFilterTest.java
Log:
JBPAPP-6311 Filters defined in superclass are not inherited in subclasses

Added: annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/Animal.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/Animal.java	                        (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/Animal.java	2011-08-29 21:49:22 UTC (rev 20976)
@@ -0,0 +1,59 @@
+package org.hibernate.test.annotations.filters;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.MappedSuperclass;
+
+import org.hibernate.annotations.Filter;
+import org.hibernate.annotations.FilterDef;
+import org.hibernate.annotations.ParamDef;
+
+
+
+ at FilterDef(name="age_gt_10",
+			parameters={ @ParamDef(name="age", type="int")})
+						
+ at Filter(name="age_gt_10",
+		condition= ":age < (select a.age from Cat as a where a.id=ID)" )
+
+ at MappedSuperclass
+public abstract class Animal {
+		
+	@Id @GeneratedValue
+	private Long id;		
+	
+	@Column(name="name")
+	private String name;
+	
+	@Column(name="age")
+	private int age;
+	
+	public Long getId() {
+		return id;
+	}
+	public void setId(Long id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public int getAge() {
+		return age;
+	}
+	public void setAge(int age) {
+		this.age = age;
+	}
+	
+	
+	
+	
+
+}

Added: annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/Cat.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/Cat.java	                        (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/Cat.java	2011-08-29 21:49:22 UTC (rev 20976)
@@ -0,0 +1,31 @@
+package org.hibernate.test.annotations.filters;
+
+import javax.persistence.Entity;
+
+import org.hibernate.annotations.Filter;
+import org.hibernate.annotations.FilterDef;
+import org.hibernate.annotations.ParamDef;
+
+
+ at Entity
+public class Cat extends Animal{
+
+	private Boolean domestic;
+
+    public Cat(){}
+	
+    public Cat(String name, int age, Boolean domestic){
+    	super.setName(name);
+    	super.setAge(age);
+    	this.setDomestic(domestic);
+    }
+
+	public void setDomestic(Boolean domestic) {
+		this.domestic = domestic;
+	}
+
+	public Boolean isDomestic() {
+		return domestic;
+	}
+
+}

Added: annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/InheritedFilterTest.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/InheritedFilterTest.java	                        (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/filters/InheritedFilterTest.java	2011-08-29 21:49:22 UTC (rev 20976)
@@ -0,0 +1,96 @@
+package org.hibernate.test.annotations.filters;
+
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.hibernate.Filter;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.test.annotations.TestCase;
+
+/**
+ * Unit Test for JBPAPP-6311 - Filters defined in superclass are not inherited in subclasses
+ * @author Alessandro Lazarotti <alessandrolt2 at gmail.com>
+ */
+public class InheritedFilterTest extends TestCase {
+	
+	Cat tom;
+	Animal garfield;
+	Session session;
+	
+
+	@Override
+	protected void setUp() throws Exception {
+		super.setUp();
+		session = openSession();
+		
+		final Transaction tx = session.beginTransaction();
+		tom = new Cat("Tom", 10, true);
+		garfield = new Cat("Garfield", 15, true);		
+		session.save(tom);
+		session.save(garfield);
+		tx.commit();
+		
+		session.close();
+	}
+
+	@Override
+	protected void tearDown() throws Exception {
+		super.tearDown();
+		session = openSession();
+		session.delete(tom);
+		session.delete(garfield);
+		session.close();
+		
+	}
+	
+	@SuppressWarnings("unchecked")
+	public void testChildWithFilter() {
+		session = openSession();
+		Filter filter = session.enableFilter("age_gt_10");
+		filter.setParameter("age", 10);
+		System.out.println("testChildWithFilter");
+		List<Animal> result = session.createCriteria(Cat.class).list();
+		Assert.assertEquals(1, result.size());
+		session.close();
+	}
+
+	@SuppressWarnings("unchecked")
+	public void testChildWithoutFilter() {
+		session = openSession();
+		List<Animal> result = session.createCriteria(Cat.class).list();
+		System.out.println("testChildWithoutFilter");
+		Assert.assertEquals(2, result.size());
+		session.close();
+	}
+
+	@SuppressWarnings("unchecked")
+	public void testParentWithFilter() {
+		session = openSession();
+		Filter filter = session.enableFilter("age_gt_10");
+		filter.setParameter("age", 10);
+		System.out.println("testParentWithFilter");
+		List<Animal> result = session.createCriteria(Animal.class).list();
+		Assert.assertEquals(1, result.size());
+		session.close();
+	}
+
+	@SuppressWarnings("unchecked")
+	public void testParentWithoutFilter() {
+		session = openSession();
+		System.out.println("testParentWithoutFilter");
+		List<Animal> result = session.createCriteria(Animal.class).list();
+		Assert.assertEquals(2, result.size());
+		session.close();
+	}	
+
+	@Override
+	protected Class<?>[] getAnnotatedClasses() {
+		return new Class[]{
+				Animal.class,
+				Cat.class
+		};
+	}
+
+}



More information about the hibernate-commits mailing list