[hibernate-commits] Hibernate SVN: r18702 - in core/trunk: annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2 and 8 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Feb 5 09:37:35 EST 2010


Author: epbernard
Date: 2010-02-05 09:37:34 -0500 (Fri, 05 Feb 2010)
New Revision: 18702

Added:
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/Dependent.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/DependentId.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/DerivedIdentityIdClassParentIdClassDepTest.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/Employee.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/EmployeeId.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/Dependent.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/DependentId.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/DerivedIdentityEmbeddedIdParentIdClassTest.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/Employee.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/EmployeeId.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeEmbeddedIdDepTest.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeEmbeddedIdDepTest.java
Removed:
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeDepTest.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeDepTest.java
Modified:
   core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
   core/trunk/annotations/src/main/java/org/hibernate/cfg/ColumnsBuilder.java
   core/trunk/annotations/src/main/java/org/hibernate/cfg/InheritanceState.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/b/DerivedIdentityIdClassParentEmbeddedIdDepTest.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/b/EmployeeId.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DerivedIdentityEmbeddedIdParentEmbeddedIdDepTest.java
   core/trunk/parent/pom.xml
Log:
HHH-4848 Add more of the spec test for derived identity and @IdClass. Missing example 5.a and example 6.a (bug at the moment)

Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java	2010-02-05 12:35:18 UTC (rev 18701)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -1712,19 +1712,31 @@
 			//Either a regular property or a basic @Id or @EmbeddedId while not ignoring id annotations
 			else if ( !isId || !entityBinder.isIgnoreIdAnnotations() ) {
 				//define whether the type is a component or not
-				boolean isComponent;
-				isComponent = property.isAnnotationPresent( Embedded.class )
-						|| property.isAnnotationPresent( EmbeddedId.class )
-						|| returnedClass.isAnnotationPresent( Embeddable.class );
 
-				//FIXME do the overrideColumnFromMapsIdProperty here and force the idclass type to look like an @embedded
+				boolean isComponent = false;
+
 				//Overrides from @MapsId if needed
 				boolean isOverridden = false;
 				if ( isId || propertyHolder.isOrWithinEmbeddedId() || propertyHolder.isInIdClass() ) {
-					Ejb3Column[] oldColumns = columns;
-					columns = columnsBuilder.overrideColumnFromMapperOrMapsIdProperty(isId);
-					isOverridden = oldColumns != columns;
+					//the associated entity could be using an @IdClass making the overridden property a component
+					final PropertyData overridingProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( isId, propertyHolder, property.getName(), mappings );
+					if (overridingProperty != null) {
+						isOverridden = true;
+						final InheritanceState state = inheritanceStatePerClass.get( overridingProperty.getClassOrElement() );
+						if (state != null) {
+							isComponent = isComponent || state.hasIdClassOrEmbeddedId();
+						}
+						//Get the new column
+						columns = columnsBuilder.overrideColumnFromMapperOrMapsIdProperty(isId);
+					}
 				}
+
+				isComponent = isComponent
+						|| property.isAnnotationPresent( Embedded.class )
+						|| property.isAnnotationPresent( EmbeddedId.class )
+						|| returnedClass.isAnnotationPresent( Embeddable.class );
+
+
 				if ( isComponent ) {
 					String referencedEntityName = null;
 					if (isOverridden) {
@@ -2085,19 +2097,22 @@
 				for ( int i = 0; i < classElements.size(); i++ ) {
 					final PropertyData idClassPropertyData = classElements.get( i );
 					final PropertyData entityPropertyData = orderedBaseClassElements.get( idClassPropertyData.getPropertyName() );
-					if ( propertyHolder.isInIdClass() ) {
-						if ( entityPropertyData.getProperty().isAnnotationPresent( ManyToOne.class )
-								|| entityPropertyData.getProperty().isAnnotationPresent( OneToOne.class ) ) {
-							//don't replace here as we need to use the actual original return type
-							//the annotation overriding will be dealt with by a mechanism similar to @MapsId
+					//FIXME 
+					if ( entityPropertyData != null ) {
+						if ( propertyHolder.isInIdClass() ) {
+							if ( entityPropertyData.getProperty().isAnnotationPresent( ManyToOne.class )
+									|| entityPropertyData.getProperty().isAnnotationPresent( OneToOne.class ) ) {
+								//don't replace here as we need to use the actual original return type
+								//the annotation overriding will be dealt with by a mechanism similar to @MapsId
+							}
+							else {
+								classElements.set( i, entityPropertyData );  //this works since they are in the same order
+							}
 						}
 						else {
 							classElements.set( i, entityPropertyData );  //this works since they are in the same order
 						}
 					}
-					else {
-						classElements.set( i, entityPropertyData );  //this works since they are in the same order
-					}
 				}
 			}
 		}

Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/ColumnsBuilder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/ColumnsBuilder.java	2010-02-05 12:35:18 UTC (rev 18701)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/ColumnsBuilder.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -183,11 +183,11 @@
 
 	Ejb3Column[] overrideColumnFromMapperOrMapsIdProperty(boolean isId) {
 		Ejb3Column[] result = columns;
-		final PropertyData annotatedWithMapsId = BinderHelper.getPropertyOverriddenByMapperOrMapsId( isId, propertyHolder, property.getName(), mappings );
-		if ( annotatedWithMapsId != null ) {
-			result = buildExplicitJoinColumns( annotatedWithMapsId.getProperty(), annotatedWithMapsId );
+		final PropertyData overridingProperty = BinderHelper.getPropertyOverriddenByMapperOrMapsId( isId, propertyHolder, property.getName(), mappings );
+		if ( overridingProperty != null ) {
+			result = buildExplicitJoinColumns( overridingProperty.getProperty(), overridingProperty );
 			if (result == null) {
-				result = buildDefaultJoinColumnsForXToOne( annotatedWithMapsId.getProperty(), annotatedWithMapsId);
+				result = buildDefaultJoinColumnsForXToOne( overridingProperty.getProperty(), overridingProperty);
 			}
 		}
 		return result;

Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/InheritanceState.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/InheritanceState.java	2010-02-05 12:35:18 UTC (rev 18701)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/InheritanceState.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -67,6 +67,7 @@
 	private ExtendedMappings mappings;
 	private AccessType accessType;
 	private ElementsToProcess elementsToProcess;
+	private Boolean hasIdClassOrEmbeddedId;
 
 	public InheritanceState(XClass clazz,
 							Map<XClass, InheritanceState> inheritanceStatePerClass,
@@ -167,21 +168,6 @@
 		isEmbeddableSuperclass = embeddableSuperclass;
 	}
 
-	public XClass getIdentifierTypeIfComponent() {
-		final ReflectionManager reflectionManager = mappings.getReflectionManager();
-		if ( reflectionManager.equals( identifierType, void.class ) ) {
-			IdClass idClass = clazz.getAnnotation( IdClass.class );
-			if (idClass != null) {
-				identifierType =  reflectionManager.toXClass( idClass.value() );
-			}
-			else {
-				//find @EmbeddedId
-				getElementsToProcess();
-			}
-		}
-		return identifierType;
-	}
-
 	void postProcess(PersistentClass persistenceClass, EntityBinder entityBinder) {
 		//make sure we run elements to process
 		getElementsToProcess();
@@ -204,14 +190,32 @@
 			else {
 				return null;
 			}
+		}
+	}
 
+	public Boolean hasIdClassOrEmbeddedId() {
+		if (hasIdClassOrEmbeddedId == null) {
+			hasIdClassOrEmbeddedId = false;
+			if ( getClassWithIdClass( true ) != null ) {
+				hasIdClassOrEmbeddedId = true;
+			}
+			else {
+				final ElementsToProcess process = getElementsToProcess();
+				for(PropertyData property : process.getElements() ) {
+					if ( property.getProperty().isAnnotationPresent( EmbeddedId.class ) ) {
+						hasIdClassOrEmbeddedId = true;
+						break;
+					}
+				}
+			}
 		}
+		return hasIdClassOrEmbeddedId;
 	}
 
 	/*
-	 * Get the annotated elements, guessing the access type from @Id or @EmbeddedId presence.
-	 * Change EntityBinder by side effect
-	 */
+		 * Get the annotated elements, guessing the access type from @Id or @EmbeddedId presence.
+		 * Change EntityBinder by side effect
+		 */
 	public ElementsToProcess getElementsToProcess() {
 		if (elementsToProcess == null) {
 			InheritanceState inheritanceState = inheritanceStatePerClass.get( clazz );

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/Dependent.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/Dependent.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/Dependent.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,25 @@
+package org.hibernate.test.annotations.derivedidentities.e2.a;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
+import javax.persistence.ManyToOne;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+ at IdClass(DependentId.class)
+public class Dependent {
+	@Id
+	String name;
+	
+	@Id @ManyToOne
+	@JoinColumns({
+			@JoinColumn(name="FK1", referencedColumnName="firstName"),
+			@JoinColumn(name="FK2", referencedColumnName="lastName")
+	})
+	Employee emp;
+}

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/DependentId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/DependentId.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/DependentId.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,14 @@
+package org.hibernate.test.annotations.derivedidentities.e2.a;
+
+import java.io.Serializable;
+import javax.persistence.Embeddable;
+import javax.persistence.Embedded;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DependentId implements Serializable {
+	String name; // matches name of @Id attribute
+	@Embedded
+	EmployeeId emp; //matches name of attribute and type of Employee PK
+}

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/DerivedIdentityIdClassParentIdClassDepTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/DerivedIdentityIdClassParentIdClassDepTest.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/DerivedIdentityIdClassParentIdClassDepTest.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,52 @@
+package org.hibernate.test.annotations.derivedidentities.e2.a;
+
+import org.hibernate.Session;
+import org.hibernate.test.annotations.TestCase;
+import org.hibernate.test.util.SchemaUtil;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DerivedIdentityIdClassParentIdClassDepTest extends TestCase {
+
+	public void testManytoOne() {
+		assertTrue( SchemaUtil.isColumnPresent( "Dependent", "FK1", getCfg() ) );
+		assertTrue( SchemaUtil.isColumnPresent( "Dependent", "FK2", getCfg() ) );
+		assertTrue( SchemaUtil.isColumnPresent( "Dependent", "name", getCfg() ) );
+		assertTrue( ! SchemaUtil.isColumnPresent( "Dependent", "firstName", getCfg() ) );
+		assertTrue( ! SchemaUtil.isColumnPresent( "Dependent", "lastName", getCfg() ) );
+		Employee e = new Employee();
+		e.firstName = "Emmanuel";
+		e.lastName = "Bernard";
+		Session s = openSession(  );
+		s.getTransaction().begin();
+		s.persist( e );
+		Dependent d = new Dependent();
+		d.emp = e;
+		d.name = "Doggy";
+		s.persist( d );
+		s.flush();
+		s.clear();
+		DependentId dId = new DependentId();
+		EmployeeId eId = new EmployeeId();
+		dId.name = d.name;
+		dId.emp = eId;
+		eId.firstName = e.firstName;
+		eId.lastName = e.lastName;
+		d = (Dependent) s.get( Dependent.class, dId );
+		assertNotNull( d.emp );
+		assertEquals( e.firstName, d.emp.firstName );
+		s.delete( d );
+		s.delete( d.emp );
+		s.getTransaction().commit();
+		s.close();
+	}
+
+	@Override
+	protected Class<?>[] getAnnotatedClasses() {
+		return new Class<?>[] {
+				Employee.class,
+				Dependent.class
+		};
+	}
+}

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/Employee.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/Employee.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/Employee.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,15 @@
+package org.hibernate.test.annotations.derivedidentities.e2.a;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+ at IdClass(EmployeeId.class)
+public class Employee {
+	@Id String firstName;
+	@Id String lastName;
+}
\ No newline at end of file

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/EmployeeId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/EmployeeId.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/EmployeeId.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,11 @@
+package org.hibernate.test.annotations.derivedidentities.e2.a;
+
+import java.io.Serializable;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class EmployeeId implements Serializable {
+	String  firstName;
+	String lastName;
+}

Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/b/DerivedIdentityIdClassParentEmbeddedIdDepTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/b/DerivedIdentityIdClassParentEmbeddedIdDepTest.java	2010-02-05 12:35:18 UTC (rev 18701)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/b/DerivedIdentityIdClassParentEmbeddedIdDepTest.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -25,9 +25,6 @@
 		d.emp = e;
 		d.id = new DependentId();
 		d.id.name = "Doggy";
-//		d.id.empPK = new EmployeeId(); //FIXME not needed when foreign is enabled
-//		d.id.empPK.firstName = e.firstName; //FIXME not needed when foreign is enabled
-//		d.id.empPK.lastName = e.lastName; //FIXME not needed when foreign is enabled
 		s.persist( d );
 		s.flush();
 		s.clear();

Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/b/EmployeeId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/b/EmployeeId.java	2010-02-05 12:35:18 UTC (rev 18701)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/b/EmployeeId.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -6,7 +6,6 @@
 /**
  * @author Emmanuel Bernard
  */
- at Embeddable
 public class EmployeeId implements Serializable {
 	String firstName;
 	String lastName;

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/Dependent.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/Dependent.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/Dependent.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,28 @@
+package org.hibernate.test.annotations.derivedidentities.e3.a;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
+import javax.persistence.ManyToOne;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+ at IdClass(DependentId.class)
+public class Dependent {
+	@Id
+	@Column(name = "dep_name")
+	String name; // default column name is overridden
+	
+	@Id
+	@JoinColumns({
+			@JoinColumn(name = "FK1", referencedColumnName = "firstName"),
+			@JoinColumn(name = "FK2", referencedColumnName = "lastName")
+	})
+	@ManyToOne
+	Employee emp;
+}

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/DependentId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/DependentId.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/DependentId.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,11 @@
+package org.hibernate.test.annotations.derivedidentities.e3.a;
+
+import java.io.Serializable;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DependentId implements Serializable {
+	String name;	// matches name of @Id attribute
+	EmployeeId emp; // matches name of @Id attribute and type of embedded id of Employee
+}

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/DerivedIdentityEmbeddedIdParentIdClassTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/DerivedIdentityEmbeddedIdParentIdClassTest.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/DerivedIdentityEmbeddedIdParentIdClassTest.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,52 @@
+package org.hibernate.test.annotations.derivedidentities.e3.a;
+
+import org.hibernate.Session;
+import org.hibernate.test.annotations.TestCase;
+import org.hibernate.test.util.SchemaUtil;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DerivedIdentityEmbeddedIdParentIdClassTest  extends TestCase {
+	public void testManyToOne() throws Exception {
+		assertTrue( SchemaUtil.isColumnPresent( "Dependent", "FK1", getCfg() ) );
+		assertTrue( SchemaUtil.isColumnPresent( "Dependent", "FK2", getCfg() ) );
+		assertTrue( SchemaUtil.isColumnPresent( "Dependent", "dep_name", getCfg() ) );
+		assertTrue( ! SchemaUtil.isColumnPresent( "Dependent", "firstName", getCfg() ) );
+		assertTrue( ! SchemaUtil.isColumnPresent( "Dependent", "lastName", getCfg() ) );
+		Employee e = new Employee();
+		e.empId = new EmployeeId();
+		e.empId.firstName = "Emmanuel";
+		e.empId.lastName = "Bernard";
+		Session s = openSession(  );
+		s.getTransaction().begin();
+		s.persist( e );
+		Dependent d = new Dependent();
+		d.emp = e;
+		d.name = "Doggy";
+		DependentId dId = new DependentId();
+		dId.emp = new EmployeeId();
+		dId.emp.firstName = e.empId.firstName;
+		dId.emp.lastName = e.empId.lastName;
+		dId.name = d.name;
+		s.persist( d );
+		s.flush();
+		s.clear();
+		d = (Dependent) s.get( Dependent.class, dId );
+		assertNotNull( d.emp );
+		assertEquals( e.empId.firstName, d.emp.empId.firstName );
+		s.delete( d );
+		s.delete( d.emp );
+		s.getTransaction().commit();
+		s.close();
+	}
+
+
+	@Override
+	protected Class<?>[] getAnnotatedClasses() {
+		return new Class<?>[] {
+				Dependent.class,
+				Employee.class
+		};
+	}
+}

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/Employee.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/Employee.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/Employee.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,13 @@
+package org.hibernate.test.annotations.derivedidentities.e3.a;
+
+import javax.persistence.EmbeddedId;
+import javax.persistence.Entity;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class Employee {
+	@EmbeddedId
+	EmployeeId empId;
+}

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/EmployeeId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/EmployeeId.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/EmployeeId.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,11 @@
+package org.hibernate.test.annotations.derivedidentities.e3.a;
+
+import java.io.Serializable;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class EmployeeId implements Serializable{
+	String firstName;
+	String lastName;
+}

Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DerivedIdentityEmbeddedIdParentEmbeddedIdDepTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DerivedIdentityEmbeddedIdParentEmbeddedIdDepTest.java	2010-02-05 12:35:18 UTC (rev 18701)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DerivedIdentityEmbeddedIdParentEmbeddedIdDepTest.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -25,9 +25,6 @@
 		d.emp = e;
 		d.id = new DependentId();
 		d.id.name = "Doggy";
-//		d.id.empPK = new EmployeeId();
-//		d.id.empPK.firstName = e.empId.firstName; //FIXME not needed when foreign is enabled
-//		d.id.empPK.lastName = e.empId.lastName; //FIXME not needed when foreign is enabled
 		s.persist( d );
 		s.flush();
 		s.clear();

Deleted: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeDepTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeDepTest.java	2010-02-05 12:35:18 UTC (rev 18701)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeDepTest.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -1,45 +0,0 @@
-package org.hibernate.test.annotations.derivedidentities.e5.b;
-
-import java.util.Date;
-
-import org.hibernate.Session;
-import org.hibernate.test.annotations.TestCase;
-import org.hibernate.test.util.SchemaUtil;
-
-/**
- * @author Emmanuel Bernard
- */
-public class DerivedIdentityIdClassParentSameIdTypeDepTest extends TestCase {
-
-	public void testOneToOneExplicitJoinColumn() throws Exception {
-		assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK1", getCfg() ) );
-		assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK2", getCfg() ) );
-		assertTrue( ! SchemaUtil.isColumnPresent( "MedicalHistory", "firstname", getCfg() ) );
-		Person e = new Person();
-		e.firstName = "Emmanuel";
-		e.lastName = "Bernard";
-		Session s = openSession(  );
-		s.getTransaction().begin();
-		s.persist( e );
-		MedicalHistory d = new MedicalHistory();
-//		d.id = new PersonId(); //FIXME not needed when foreign is enabled
-//		d.id.firstName = "Emmanuel"; //FIXME not needed when foreign is enabled
-//		d.id.lastName = "Bernard"; //FIXME not needed when foreign is enabled
-		d.patient = e;
-		s.persist( d );
-		s.flush();
-		s.clear();
-		d = (MedicalHistory) s.get( MedicalHistory.class, d.id );
-		assertEquals( d.id.firstName, d.patient.firstName );
-		s.getTransaction().rollback();
-		s.close();
-	}
-
-	@Override
-	protected Class<?>[] getAnnotatedClasses() {
-		return new Class<?>[] {
-				MedicalHistory.class,
-				Person.class
-		};
-	}
-}

Copied: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeEmbeddedIdDepTest.java (from rev 18700, core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeDepTest.java)
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeEmbeddedIdDepTest.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeEmbeddedIdDepTest.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,43 @@
+package org.hibernate.test.annotations.derivedidentities.e5.b;
+
+import java.util.Date;
+
+import org.hibernate.Session;
+import org.hibernate.junit.FailureExpected;
+import org.hibernate.test.annotations.TestCase;
+import org.hibernate.test.util.SchemaUtil;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DerivedIdentityIdClassParentSameIdTypeEmbeddedIdDepTest extends TestCase {
+
+	public void testOneToOneExplicitJoinColumn() throws Exception {
+		assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK1", getCfg() ) );
+		assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK2", getCfg() ) );
+		assertTrue( ! SchemaUtil.isColumnPresent( "MedicalHistory", "firstname", getCfg() ) );
+		Person e = new Person();
+		e.firstName = "Emmanuel";
+		e.lastName = "Bernard";
+		Session s = openSession(  );
+		s.getTransaction().begin();
+		s.persist( e );
+		MedicalHistory d = new MedicalHistory();
+		d.patient = e;
+		s.persist( d );
+		s.flush();
+		s.clear();
+		d = (MedicalHistory) s.get( MedicalHistory.class, d.id );
+		assertEquals( d.id.firstName, d.patient.firstName );
+		s.getTransaction().rollback();
+		s.close();
+	}
+
+	@Override
+	protected Class<?>[] getAnnotatedClasses() {
+		return new Class<?>[] {
+				MedicalHistory.class,
+				Person.class
+		};
+	}
+}

Deleted: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeDepTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeDepTest.java	2010-02-05 12:35:18 UTC (rev 18701)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeDepTest.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -1,44 +0,0 @@
-package org.hibernate.test.annotations.derivedidentities.e6.b;
-
-import org.hibernate.Session;
-import org.hibernate.test.annotations.TestCase;
-import org.hibernate.test.util.SchemaUtil;
-
-/**
- * @author Emmanuel Bernard
- */
-public class DerivedIdentityEmbeddedIdParentSameIdTypeDepTest extends TestCase {
-
-	public void testOneToOneExplicitJoinColumn() throws Exception {
-		assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK1", getCfg() ) );
-		assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK2", getCfg() ) );
-		assertTrue( ! SchemaUtil.isColumnPresent( "MedicalHistory", "firstname", getCfg() ) );
-		Person e = new Person();
-		e.id = new PersonId();
-		e.id.firstName = "Emmanuel";
-		e.id.lastName = "Bernard";
-		Session s = openSession(  );
-		s.getTransaction().begin();
-		s.persist( e );
-		MedicalHistory d = new MedicalHistory();
-//		d.id = new PersonId();
-//		d.id.firstName = "Emmanuel"; //FIXME not needed when foreign is enabled
-//		d.id.lastName = "Bernard"; //FIXME not needed when foreign is enabled
-		d.patient = e;
-		s.persist( d );
-		s.flush();
-		s.clear();
-		d = (MedicalHistory) s.get( MedicalHistory.class, d.id );
-		assertEquals( d.id.firstName, d.patient.id.firstName );
-		s.getTransaction().rollback();
-		s.close();
-	}
-
-	@Override
-	protected Class<?>[] getAnnotatedClasses() {
-		return new Class<?>[] {
-				MedicalHistory.class,
-				Person.class
-		};
-	}
-}
\ No newline at end of file

Copied: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeEmbeddedIdDepTest.java (from rev 18700, core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeDepTest.java)
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeEmbeddedIdDepTest.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeEmbeddedIdDepTest.java	2010-02-05 14:37:34 UTC (rev 18702)
@@ -0,0 +1,44 @@
+package org.hibernate.test.annotations.derivedidentities.e6.b;
+
+import org.hibernate.Session;
+import org.hibernate.test.annotations.TestCase;
+import org.hibernate.test.util.SchemaUtil;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DerivedIdentityEmbeddedIdParentSameIdTypeEmbeddedIdDepTest extends TestCase {
+
+	public void testOneToOneExplicitJoinColumn() throws Exception {
+		assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK1", getCfg() ) );
+		assertTrue( SchemaUtil.isColumnPresent( "MedicalHistory", "FK2", getCfg() ) );
+		assertTrue( ! SchemaUtil.isColumnPresent( "MedicalHistory", "firstname", getCfg() ) );
+		Person e = new Person();
+		e.id = new PersonId();
+		e.id.firstName = "Emmanuel";
+		e.id.lastName = "Bernard";
+		Session s = openSession(  );
+		s.getTransaction().begin();
+		s.persist( e );
+		MedicalHistory d = new MedicalHistory();
+//		d.id = new PersonId();
+//		d.id.firstName = "Emmanuel"; //FIXME not needed when foreign is enabled
+//		d.id.lastName = "Bernard"; //FIXME not needed when foreign is enabled
+		d.patient = e;
+		s.persist( d );
+		s.flush();
+		s.clear();
+		d = (MedicalHistory) s.get( MedicalHistory.class, d.id );
+		assertEquals( d.id.firstName, d.patient.id.firstName );
+		s.getTransaction().rollback();
+		s.close();
+	}
+
+	@Override
+	protected Class<?>[] getAnnotatedClasses() {
+		return new Class<?>[] {
+				MedicalHistory.class,
+				Person.class
+		};
+	}
+}
\ No newline at end of file

Modified: core/trunk/parent/pom.xml
===================================================================
--- core/trunk/parent/pom.xml	2010-02-05 12:35:18 UTC (rev 18701)
+++ core/trunk/parent/pom.xml	2010-02-05 14:37:34 UTC (rev 18702)
@@ -500,7 +500,7 @@
             <dependency>
                 <groupId>org.hibernate.javax.persistence</groupId>
                 <artifactId>hibernate-jpa-2.0-api</artifactId>
-                <version>1.0.0-CR-1</version>
+                <version>1.0.0-SNAPSHOT</version>
             </dependency>
             <!-- Set the version of the hibernate-commons-annotations to be used throughout the the project -->
             <dependency>



More information about the hibernate-commits mailing list