[hibernate-commits] Hibernate SVN: r19717 - in core/trunk: core/src/main/java/org/hibernate/tuple/entity and 2 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Jun 11 14:13:14 EDT 2010


Author: stliu
Date: 2010-06-11 14:13:13 -0400 (Fri, 11 Jun 2010)
New Revision: 19717

Added:
   core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/
   core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Car.java
   core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/EntityNameFromSubClassTest.java
   core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Person.java
   core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.hbm.xml
   core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.java
Modified:
   core/trunk/core/src/main/java/org/hibernate/tuple/Instantiator.java
   core/trunk/core/src/main/java/org/hibernate/tuple/entity/EntityMetamodel.java
Log:
HHH-4036 EntityMetamodel entityNameByInheritenceClassNameMap field used inconsistently

Modified: core/trunk/core/src/main/java/org/hibernate/tuple/Instantiator.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/tuple/Instantiator.java	2010-06-11 16:41:14 UTC (rev 19716)
+++ core/trunk/core/src/main/java/org/hibernate/tuple/Instantiator.java	2010-06-11 18:13:13 UTC (rev 19717)
@@ -56,7 +56,7 @@
 	 * or component which this Instantiator instantiates.
 	 *
 	 * @param object The object to be checked.
-	 * @return True is the object does respresent an instance of the underlying
+	 * @return True is the object does represent an instance of the underlying
 	 * entity/component.
 	 */
 	public boolean isInstance(Object object);

Modified: core/trunk/core/src/main/java/org/hibernate/tuple/entity/EntityMetamodel.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/tuple/entity/EntityMetamodel.java	2010-06-11 16:41:14 UTC (rev 19716)
+++ core/trunk/core/src/main/java/org/hibernate/tuple/entity/EntityMetamodel.java	2010-06-11 18:13:13 UTC (rev 19717)
@@ -121,7 +121,7 @@
 	private final boolean inherited;
 	private final boolean hasSubclasses;
 	private final Set subclassEntityNames = new HashSet();
-	private final Map entityNameByInheritenceClassNameMap = new HashMap();
+	private final Map entityNameByInheritenceClassMap = new HashMap();
 
 	private final EntityEntityModeToTuplizerMapping tuplizerMapping;
 
@@ -311,11 +311,11 @@
 		subclassEntityNames.add( name );
 
 		if ( persistentClass.hasPojoRepresentation() ) {
-			entityNameByInheritenceClassNameMap.put( persistentClass.getMappedClass(), persistentClass.getEntityName() );
+			entityNameByInheritenceClassMap.put( persistentClass.getMappedClass(), persistentClass.getEntityName() );
 			iter = persistentClass.getSubclassIterator();
 			while ( iter.hasNext() ) {
 				final PersistentClass pc = ( PersistentClass ) iter.next();
-				entityNameByInheritenceClassNameMap.put( pc.getMappedClass(), pc.getEntityName() );
+				entityNameByInheritenceClassMap.put( pc.getMappedClass(), pc.getEntityName() );
 			}
 		}
 
@@ -569,13 +569,13 @@
 	}
 
 	/**
-	 * Return the entity-name mapped to the given class within our inheritence hierarchy, if any.
+	 * Return the entity-name mapped to the given class within our inheritance hierarchy, if any.
 	 *
 	 * @param inheritenceClass The class for which to resolve the entity-name.
 	 * @return The mapped entity-name, or null if no such mapping was found.
 	 */
 	public String findEntityNameByEntityClass(Class inheritenceClass) {
-		return ( String ) entityNameByInheritenceClassNameMap.get( inheritenceClass.getName() );
+		return ( String ) entityNameByInheritenceClassMap.get( inheritenceClass );
 	}
 
 	public String toString() {

Added: core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Car.java
===================================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Car.java	                        (rev 0)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Car.java	2010-06-11 18:13:13 UTC (rev 19717)
@@ -0,0 +1,10 @@
+// $Id: Car.java 7087 2005-06-08 18:23:44Z steveebersole $
+package org.hibernate.test.entityname;
+
+/**
+ * Implementation of Car.
+ *
+ * @author Steve Ebersole
+ */
+public class Car extends Vehicle {
+}

Added: core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/EntityNameFromSubClassTest.java
===================================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/EntityNameFromSubClassTest.java	                        (rev 0)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/EntityNameFromSubClassTest.java	2010-06-11 18:13:13 UTC (rev 19717)
@@ -0,0 +1,41 @@
+package org.hibernate.test.entityname;
+
+import org.hibernate.Session;
+import org.hibernate.junit.functional.FunctionalTestCase;
+/**
+ * 
+ * @author stliu
+ *
+ */
+public class EntityNameFromSubClassTest extends FunctionalTestCase {
+
+	public EntityNameFromSubClassTest(String string) {
+		super(string);
+	}
+
+	public void testEntityName() {
+		Session s = openSession();
+		s.beginTransaction();
+		Person stliu = new Person();
+		stliu.setName("stliu");
+		Car golf = new Car();
+		golf.setOwner("stliu");
+		stliu.getCars().add(golf);
+		s.save(stliu);
+		s.getTransaction().commit();
+		s.close();
+		
+		s=openSession();
+		s.beginTransaction();
+		Person p = (Person)s.get(Person.class, stliu.getId());
+		assertEquals(1, p.getCars().size());
+		assertEquals(Car.class, p.getCars().iterator().next().getClass());
+		s.getTransaction().commit();
+		s.close();
+	}
+
+	public String[] getMappings() {
+		return new String[] { "entityname/Vehicle.hbm.xml" };
+	}
+
+}

Added: core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Person.java
===================================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Person.java	                        (rev 0)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Person.java	2010-06-11 18:13:13 UTC (rev 19717)
@@ -0,0 +1,39 @@
+package org.hibernate.test.entityname;
+
+import java.util.HashSet;
+import java.util.Set;
+/**
+ * 
+ * @author stliu
+ *
+ */
+public class Person {
+	private Long id;
+	private String Name;
+	private Set cars = new HashSet();
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return Name;
+	}
+
+	public void setName(String name) {
+		Name = name;
+	}
+
+	public Set getCars() {
+		return cars;
+	}
+
+	public void setCars(Set cars) {
+		this.cars = cars;
+	}
+
+}

Added: core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.hbm.xml
===================================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.hbm.xml	                        (rev 0)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.hbm.xml	2010-06-11 18:13:13 UTC (rev 19717)
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.hibernate.test.entityname">
+
+	<!-- Vehicle represents an abstract root of a union-subclass hierarchy -->
+	<class name="Vehicle" abstract="true" entity-name="VEHICLE" discriminator-value="V">
+		<id name="id" access="field" type="long">
+			<generator class="increment"/>
+		</id>
+		<discriminator column="TYPE" type="string" />
+		<property name="vin" type="string"/>
+		<property name="owner" type="string"/>
+
+		<!-- Car represents a concrete leaf of a union-subclass hierarchy with no concrete super -->
+		<subclass name="Car" entity-name="CAR" discriminator-value="C"/>
+	</class>
+	<class name="Person">
+		<id name="id">
+			<generator class="increment" />
+		</id>
+		<property name="name" />
+		<set name="cars" cascade="all">
+			<key column="car_id"/>
+			<one-to-many entity-name="VEHICLE"/>
+		</set>
+	</class>
+
+</hibernate-mapping>
\ No newline at end of file

Added: core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.java
===================================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.java	                        (rev 0)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.java	2010-06-11 18:13:13 UTC (rev 19717)
@@ -0,0 +1,29 @@
+// $Id: Vehicle.java 7087 2005-06-08 18:23:44Z steveebersole $
+package org.hibernate.test.entityname;
+
+/**
+ * Implementation of Vehicle.
+ *
+ * @author Steve Ebersole
+ */
+public abstract class Vehicle {
+	private Long id;
+	private String vin;
+	private String owner;
+
+	public String getVin() {
+		return vin;
+	}
+
+	public void setVin(String vin) {
+		this.vin = vin;
+	}
+
+	public String getOwner() {
+		return owner;
+	}
+
+	public void setOwner(String owner) {
+		this.owner = owner;
+	}
+}



More information about the hibernate-commits mailing list