Author: stliu
Date: 2011-01-11 04:59:12 -0500 (Tue, 11 Jan 2011)
New Revision: 20876
Added:
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Car.java
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/EntityNameFromSubClassTest.java
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Person.java
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.hbm.xml
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.java
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/tuple/Instantiator.java
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/tuple/entity/EntityMetamodel.java
Log:
JBPAPP-5581 HHH-4036: EntityMetamodel entityNameByInheritenceClassNameMap field used
inconsistently
Modified:
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/tuple/Instantiator.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/tuple/Instantiator.java 2011-01-11
09:37:46 UTC (rev 20875)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/tuple/Instantiator.java 2011-01-11
09:59:12 UTC (rev 20876)
@@ -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/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/tuple/entity/EntityMetamodel.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/tuple/entity/EntityMetamodel.java 2011-01-11
09:37:46 UTC (rev 20875)
+++
core/branches/Branch_3_3_2_GA_CP/core/src/main/java/org/hibernate/tuple/entity/EntityMetamodel.java 2011-01-11
09:59:12 UTC (rev 20876)
@@ -98,7 +98,7 @@
private final boolean hasInsertGeneratedValues;
private final boolean hasUpdateGeneratedValues;
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- private final Map propertyIndexes = new HashMap();
+ private final Map<String,Integer> propertyIndexes = new
HashMap<String,Integer>();
private final boolean hasCollections;
private final boolean hasMutableProperties;
private final boolean hasLazyProperties;
@@ -122,7 +122,7 @@
private final boolean inherited;
private final boolean hasSubclasses;
private final Set subclassEntityNames = new HashSet();
- private final Map entityNameByInheritenceClassNameMap = new HashMap();
+ private final Map<Class<?>,String> entityNameByInheritenceClassMap = new
HashMap<Class<?>,String>();
private final EntityEntityModeToTuplizerMapping tuplizerMapping;
@@ -312,11 +312,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() );
}
}
@@ -490,7 +490,7 @@
}
public Integer getPropertyIndexOrNull(String propertyName) {
- return (Integer) propertyIndexes.get( propertyName );
+ return propertyIndexes.get( propertyName );
}
public boolean hasCollections() {
@@ -570,13 +570,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 entityNameByInheritenceClassMap.get( inheritenceClass );
}
public String toString() {
Added:
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Car.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Car.java
(rev 0)
+++
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Car.java 2011-01-11
09:59:12 UTC (rev 20876)
@@ -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/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/EntityNameFromSubClassTest.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/EntityNameFromSubClassTest.java
(rev 0)
+++
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/EntityNameFromSubClassTest.java 2011-01-11
09:59:12 UTC (rev 20876)
@@ -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/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Person.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Person.java
(rev 0)
+++
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Person.java 2011-01-11
09:59:12 UTC (rev 20876)
@@ -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/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.hbm.xml
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.hbm.xml
(rev 0)
+++
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.hbm.xml 2011-01-11
09:59:12 UTC (rev 20876)
@@ -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/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.java
===================================================================
---
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.java
(rev 0)
+++
core/branches/Branch_3_3_2_GA_CP/testsuite/src/test/java/org/hibernate/test/entityname/Vehicle.java 2011-01-11
09:59:12 UTC (rev 20876)
@@ -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;
+ }
+}
Show replies by date