[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