[hibernate-commits] Hibernate SVN: r18626 - in core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities: e3 and 1 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Jan 26 08:08:03 EST 2010


Author: epbernard
Date: 2010-01-26 08:08:02 -0500 (Tue, 26 Jan 2010)
New Revision: 18626

Added:
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/Dependent.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DependentId.java
   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/Employee.java
   core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/EmployeeId.java
Log:
HHH-4529 add tests for parent class @EmbeddedId and derived class @EmbeddedId

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/Dependent.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/Dependent.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/Dependent.java	2010-01-26 13:08:02 UTC (rev 18626)
@@ -0,0 +1,31 @@
+package org.hibernate.test.annotations.derivedidentities.e3.b;
+
+import javax.persistence.AttributeOverride;
+import javax.persistence.Column;
+import javax.persistence.EmbeddedId;
+import javax.persistence.Entity;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
+import javax.persistence.ManyToOne;
+import javax.persistence.MapsId;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class Dependent {
+	// default column name for "name" attribute is overridden
+	@AttributeOverride(name = "name", column = @Column(name = "dep_name"))
+	@EmbeddedId
+	DependentId id;
+
+
+	@MapsId("empPK")
+	@JoinColumns({
+			@JoinColumn(name = "FK1", referencedColumnName = "firstName"),
+			@JoinColumn(name = "FK2", referencedColumnName = "lastName")
+	})
+	@ManyToOne
+	Employee emp;
+
+}
\ No newline at end of file

Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DependentId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DependentId.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DependentId.java	2010-01-26 13:08:02 UTC (rev 18626)
@@ -0,0 +1,13 @@
+package org.hibernate.test.annotations.derivedidentities.e3.b;
+
+import java.io.Serializable;
+import javax.persistence.Embeddable;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Embeddable
+public class DependentId implements Serializable {
+	String name;
+	EmployeeId empPK;
+}

Added: 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	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DerivedIdentityEmbeddedIdParentEmbeddedIdDepTest.java	2010-01-26 13:08:02 UTC (rev 18626)
@@ -0,0 +1,49 @@
+package org.hibernate.test.annotations.derivedidentities.e3.b;
+
+import org.hibernate.Session;
+import org.hibernate.test.annotations.TestCase;
+import org.hibernate.test.util.SchemaUtil;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DerivedIdentityEmbeddedIdParentEmbeddedIdDepTest 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.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();
+		d = (Dependent) s.get( Dependent.class, d.id );
+		assertNotNull( d.emp );
+		assertEquals( e.empId.firstName, d.emp.empId.firstName );
+		s.getTransaction().rollback();
+		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/b/Employee.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/Employee.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/Employee.java	2010-01-26 13:08:02 UTC (rev 18626)
@@ -0,0 +1,14 @@
+package org.hibernate.test.annotations.derivedidentities.e3.b;
+
+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/b/EmployeeId.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/EmployeeId.java	                        (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/EmployeeId.java	2010-01-26 13:08:02 UTC (rev 18626)
@@ -0,0 +1,13 @@
+package org.hibernate.test.annotations.derivedidentities.e3.b;
+
+import java.io.Serializable;
+import javax.persistence.Embeddable;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Embeddable
+public class EmployeeId implements Serializable {
+	String firstName;
+	String lastName;
+}



More information about the hibernate-commits mailing list