Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppCompany.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppCompany.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppCompany.java	(working copy)
@@ -50,7 +50,7 @@
     @PrimaryKey
     @Column(name="ID")
     long getCompanyid();
-    @Persistent
+    @Persistent(mappedBy="company")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppDepartment.class)
     Set getDepartments();
     @Column(name="FOUNDEDDATE")
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppDepartment.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppDepartment.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppDepartment.java	(working copy)
@@ -42,8 +42,10 @@
     long getDeptid();
     @Column(name="NAME")
     String getName();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppCompany.class)
     @Column(name="COMPANYID")
     ICompany getCompany();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     @Column(name="EMP_OF_THE_MONTH")
     IEmployee getEmployeeOfTheMonth();
     @Persistent(persistenceModifier=PersistenceModifier.PERSISTENT, 
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppEmployee.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppEmployee.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppEmployee.java	(working copy)
@@ -49,14 +49,17 @@
             mappedBy="members")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppProject.class)
     Set getProjects();
-    @Persistent(mappedBy="employee")
+    @Persistent(mappedBy="employee", types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppDentalInsurance.class)
     IDentalInsurance getDentalInsurance();
-    @Persistent(mappedBy="employee")
+    @Persistent(mappedBy="employee", types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppMedicalInsurance.class)
     IMedicalInsurance getMedicalInsurance();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppDepartment.class)
     @Column(name="DEPARTMENT")
     IDepartment getDepartment();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppDepartment.class)
     @Column(name="FUNDINGDEPT")
     IDepartment getFundingDept();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     @Column(name="MANAGER")
     IEmployee getManager();
     @Persistent(persistenceModifier=PersistenceModifier.PERSISTENT,
@@ -63,13 +66,15 @@
             mappedBy="manager")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     Set getTeam();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     @Column(name="MENTOR")
     IEmployee getMentor();
-    @Persistent(mappedBy="mentor")
+    @Persistent(mappedBy="mentor", types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     IEmployee getProtege();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     @Column(name="HRADVISOR")
     IEmployee getHradvisor();
-    @Persistent(persistenceModifier=PersistenceModifier.PERSISTENT)
+    @Persistent(mappedBy="hradvisor", persistenceModifier=PersistenceModifier.PERSISTENT)
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     Set getHradvisees();
     
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppInsurance.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppInsurance.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppInsurance.java	(working copy)
@@ -41,6 +41,7 @@
     long getInsid();
     @Column(name="CARRIER")
     String getCarrier();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     @Column(name="EMPLOYEE")
     IEmployee getEmployee();
 
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppPerson.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppPerson.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppPerson.java	(working copy)
@@ -63,8 +63,8 @@
     @Persistent(persistenceModifier=PersistenceModifier.PERSISTENT,
             table="employee_phoneno_type")
     @Join(column="EMPID")
-    @Key(types=java.lang.String.class)
-    @Value(types=java.lang.String.class)
+    @Key(types=java.lang.String.class, column="TYPE")
+    @Value(types=java.lang.String.class, column="PHONENO")
     Map getPhoneNumbers();
     
     void setPersonid(long personid);
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppProject.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppProject.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIAppProject.java	(working copy)
@@ -44,16 +44,13 @@
     BigDecimal getBudget();
     @Persistent(table="project_reviewer")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedFC.FCAppEmployee.class,
-            column="REVIEWER")
-    @Join(column="PROJID")
-    //@Join(column="PROJID", foreignKey=@ForeignKey(name="PR_PROJ_FK"))
+            column="REVIEWER", foreignKey="PR_REV_FK")
+    @Join(column="PROJID", foreignKey="PR_PROJ_FK")
     Set getReviewers();
     @Persistent(table="project_member")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedFC.FCAppEmployee.class,
-            column="MEMBER")
-    //@Element(types=org.apache.jdo.tck.pc.companyAnnotatedApp.FCAppEmployee.class,
-    //    foreignKey=@ForeignKey(name="PR_REV_FK"))
-    @Join(column="PROJID")
+            column="MEMBER", foreignKey="PM_MEMB_FK")
+    @Join(column="PROJID", foreignKey="PM_PROJ_FK")
     Set getMembers();
     
     void setProjid(long projid);
@@ -59,11 +56,6 @@
     void setProjid(long projid);
     void setName(String name);
     void setBudget(BigDecimal budget);
-    @Persistent
-    @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     void setReviewers(Set reviewers);
-    @Persistent
-    @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppEmployee.class)
     void setMembers(Set employees);
-    
 }
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSCompany.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSCompany.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSCompany.java	(working copy)
@@ -38,7 +38,7 @@
         column="DATASTORE_IDENTITY")
 public interface PIDSCompany extends ICompany {
     
-    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppAddress.class)
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSAddress.class)
     @Embedded(nullIndicatorColumn="COUNTRY",
         members={
             @Persistent(name="addrid", columns=@Column(name="ADDRID")),
@@ -51,7 +51,7 @@
     IAddress getAddress();
     @Column(name="ID")
     long getCompanyid();
-    @Persistent
+    @Persistent(mappedBy="company")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSDepartment.class)
     Set getDepartments();
     @Column(name="FOUNDEDDATE")
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSDepartment.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSDepartment.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSDepartment.java	(working copy)
@@ -42,8 +42,10 @@
     long getDeptid();
     @Column(name="NAME")
     String getName();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSCompany.class)
     @Column(name="COMPANYID")
     ICompany getCompany();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class)
     @Column(name="EMP_OF_THE_MONTH")
     IEmployee getEmployeeOfTheMonth();
     @Persistent(mappedBy="department")
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSEmployee.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSEmployee.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSEmployee.java	(working copy)
@@ -45,14 +45,17 @@
     @Persistent(mappedBy="members")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSProject.class)
     Set getProjects();
-    @Persistent(mappedBy="employee")
+    @Persistent(mappedBy="employee",types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSDentalInsurance.class)
     IDentalInsurance getDentalInsurance();
-    @Persistent(mappedBy="employee")
+    @Persistent(mappedBy="employee",types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSMedicalInsurance.class)
     IMedicalInsurance getMedicalInsurance();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSDepartment.class)
     @Column(name="DEPARTMENT")
     IDepartment getDepartment();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSDepartment.class)
     @Column(name="FUNDINGDEPT")
     IDepartment getFundingDept();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class)
     @Column(name="MANAGER")
     IEmployee getManager();
     @Persistent(mappedBy="manager")
@@ -58,13 +61,15 @@
     @Persistent(mappedBy="manager")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class)
     Set getTeam();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class)
     @Column(name="MENTOR")
     IEmployee getMentor();
-    @Persistent(mappedBy="mentor")
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class, mappedBy="mentor")
     IEmployee getProtege();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class)
     @Column(name="HRADVISOR")
     IEmployee getHradvisor();
-    @Persistent
+    @Persistent(mappedBy="hradvisor")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class)
     Set getHradvisees();
     
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSInsurance.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSInsurance.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSInsurance.java	(working copy)
@@ -41,6 +41,7 @@
     long getInsid();
     @Column(name="CARRIER")
     String getCarrier();
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class)
     @Column(name="EMPLOYEE")
     IEmployee getEmployee();
 
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSPerson.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSPerson.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSPerson.java	(working copy)
@@ -47,7 +47,7 @@
     @Persistent(defaultFetchGroup="false")
     @Column(name="MIDDLENAME", allowsNull="true")
     String getMiddlename();
-    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIAppAddress.class)
+    @Persistent(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSAddress.class)
     @Embedded(nullIndicatorColumn="COUNTRY",
         members={
             @Persistent(name="addrid", columns=@Column(name="ADDRID")),
@@ -61,8 +61,8 @@
     Date getBirthdate();
     @Persistent(table="employee_phoneno_type")
     @Join(column="EMPID")
-    @Key(types=java.lang.String.class)
-    @Value(types=java.lang.String.class)
+    @Key(types=java.lang.String.class, column="TYPE")
+    @Value(types=java.lang.String.class, column="PHONENO")
     Map getPhoneNumbers();
     
     void setPersonid(long personid);
Index: /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSProject.java
===================================================================
--- /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSProject.java	(revision 560688)
+++ /home/andy/work/jdo/trunk/tck2/src/java/org/apache/jdo/tck/pc/companyAnnotatedPI/PIDSProject.java	(working copy)
@@ -42,15 +42,15 @@
     String getName();
     @Column(name="BUDGET", jdbcType="DECIMAL", length=11, scale=2)
     BigDecimal getBudget();
-    @Persistent
+    @Persistent(table="project_reviewer")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class,
             column="REVIEWER", foreignKey="PR_REV_FK")
-    @Join(column="PROJID", table="proj_reviewer", foreignKey="PR_PROJ_FK")
+    @Join(column="PROJID", foreignKey="PR_PROJ_FK")
     Set getReviewers();
-    @Persistent
+    @Persistent(table="project_member")
     @Element(types=org.apache.jdo.tck.pc.companyAnnotatedPI.PIDSEmployee.class,
             column="MEMBER", foreignKey="PM_MEMB_FK")
-    @Join(column="PROJID", table="proj_member", foreignKey="PM_PROJ_FK")
+    @Join(column="PROJID", foreignKey="PM_PROJ_FK")
     Set getMembers();
     
     void setProjid(long projid);
