You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mb...@apache.org on 2022/07/10 22:21:32 UTC

[db-jdo] 02/02: JDO-817 removing compiler warnings: getCompanyModelInstances methods return correct generic list

This is an automated email from the ASF dual-hosted git repository.

mbo pushed a commit to branch tck-compiler-warnings
in repository https://gitbox.apache.org/repos/asf/db-jdo.git

commit 20e65dc2e7758214cc03d1e6efcf6bd5d3abf1fa
Author: Michael Bouschen <Mi...@akquinet.de>
AuthorDate: Mon Jul 11 00:21:19 2022 +0200

    JDO-817 removing compiler warnings: getCompanyModelInstances methods return correct generic list
---
 .../org/apache/jdo/tck/AbstractReaderTest.java     |  5 ++
 .../apache/jdo/tck/query/QueryElementHolder.java   | 26 +++---
 .../java/org/apache/jdo/tck/query/QueryTest.java   | 63 ++++++---------
 .../jdo/tck/query/api/MetadataSearchOrder.java     | 11 +--
 .../jdo/tck/query/api/NewQuerySingleString.java    |  3 +-
 .../apache/jdo/tck/query/api/QueryExtentions.java  |  3 +-
 .../apache/jdo/tck/query/api/SampleQueries.java    | 92 +++++++++++-----------
 .../org/apache/jdo/tck/query/api/SetRange.java     |  3 +-
 .../org/apache/jdo/tck/query/api/SetUnique.java    |  5 +-
 .../tck/query/api/SetterReplacePreviousValues.java |  6 +-
 .../jdo/tck/query/api/SingleStringQuery.java       |  3 +-
 .../jdo/tck/query/delete/DeleteCallback.java       |  2 +-
 .../java/org/apache/jdo/tck/query/jdoql/Cast.java  |  5 +-
 .../jdoql/ComparingCollectionFieldToNull.java      |  4 +-
 ...omparingPersistentAndNonPersistentInstance.java |  9 ++-
 .../tck/query/jdoql/DenoteUniquenessInFilter.java  |  8 +-
 .../org/apache/jdo/tck/query/jdoql/Having.java     |  9 ++-
 .../query/jdoql/IdentifiersEqualFieldNames.java    | 12 +--
 .../apache/jdo/tck/query/jdoql/IfElseInFilter.java |  9 ++-
 .../tck/query/jdoql/MultipleIdenticalImports.java  | 13 +--
 .../query/jdoql/NavigationComparisonWithNull.java  | 26 +++---
 .../jdoql/NavigationThroughACollectionField.java   |  3 +-
 .../jdoql/NavigationThroughANullValuedField.java   | 10 ++-
 ...NavigationThroughReferencesUsesDotOperator.java |  9 ++-
 .../jdoql/NullCollectionsAndContainsMethod.java    | 11 +--
 .../tck/query/jdoql/NullCollectionsAndIsEmpty.java |  5 +-
 .../jdo/tck/query/jdoql/OrderingSpecification.java |  4 +-
 .../apache/jdo/tck/query/jdoql/PositiveRange.java  |  9 ++-
 .../apache/jdo/tck/query/jdoql/RangeAsString.java  |  9 ++-
 .../query/jdoql/SeparateNamespaceForTypeNames.java |  7 +-
 .../query/jdoql/methods/StartsWithAndEndsWith.java |  5 +-
 .../jdoql/methods/SupportedCollectionMethods.java  | 19 ++---
 .../query/jdoql/methods/SupportedDateMethods.java  |  7 +-
 .../query/jdoql/methods/SupportedListMethods.java  |  7 +-
 .../query/jdoql/methods/SupportedMapMethods.java   |  9 ++-
 .../jdoql/methods/SupportedStringMethods.java      | 31 ++++----
 ...dComparisonsBetweenDateFieldsAndParameters.java |  8 +-
 ...omparisonsBetweenStringFieldsAndParameters.java |  8 +-
 .../jdo/tck/query/jdoql/operators/Instanceof.java  |  5 +-
 .../jdo/tck/query/jdoql/operators/Modulo.java      |  3 +-
 .../query/jdoql/operators/StringConcatenation.java |  5 +-
 .../parameters/DomainObjectsAsParameters.java      | 57 +++++++-------
 .../query/jdoql/parameters/ImplicitParameters.java |  6 +-
 .../query/jdoql/parameters/OrderOfParameters.java  |  4 +-
 .../parameters/ParameterBoundToDifferentPM.java    |  2 +-
 .../query/jdoql/subqueries/AggregateOnSize.java    |  2 +-
 .../jdoql/subqueries/CorrelatedSubqueries.java     | 12 +--
 .../CorrelatedSubqueriesWithParameters.java        |  6 +-
 .../subqueries/MultipleCallsReplaceSubquery.java   |  2 +-
 .../jdoql/subqueries/NonCorrelatedSubqueries.java  |  4 +-
 .../NullCandidateCollectionExpression.java         |  2 +-
 .../jdoql/subqueries/NullSubqueryParameter.java    |  2 +-
 .../subqueries/UnmodifiedSubqueryInstance.java     |  4 +-
 .../tck/query/jdoql/variables/MixedVariables.java  |  4 +-
 .../jdoql/variables/UnconstrainedVariable.java     |  3 +-
 .../query/jdoql/variables/VariablesAndFields.java  | 11 +--
 .../apache/jdo/tck/query/result/DefaultResult.java |  3 +-
 .../apache/jdo/tck/query/result/DefaultUnique.java |  3 +-
 .../query/result/DistinctCandidateInstances.java   | 10 +--
 .../apache/jdo/tck/query/result/DistinctQuery.java |  6 +-
 .../org/apache/jdo/tck/query/result/Grouping.java  |  5 +-
 .../apache/jdo/tck/query/result/NullResults.java   |  3 +-
 .../jdo/tck/query/result/ResultExpressions.java    | 13 +--
 .../apache/jdo/tck/query/result/ShapeOfResult.java | 10 ++-
 .../org/apache/jdo/tck/query/result/Unique.java    |  5 +-
 .../jdo/tck/query/result/VariableInResult.java     |  8 +-
 .../result/VariableInResultMultipleNavigation.java | 25 +++---
 .../query/result/VariableInResultNavigation.java   | 22 +++---
 .../jdo/tck/query/sql/AllowedAPIMethods.java       |  5 +-
 .../apache/jdo/tck/query/sql/ExecuteWithMap.java   |  7 +-
 70 files changed, 394 insertions(+), 343 deletions(-)

diff --git a/tck/src/main/java/org/apache/jdo/tck/AbstractReaderTest.java b/tck/src/main/java/org/apache/jdo/tck/AbstractReaderTest.java
index ca6e8fda..7b4c7157 100644
--- a/tck/src/main/java/org/apache/jdo/tck/AbstractReaderTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/AbstractReaderTest.java
@@ -56,6 +56,11 @@ public class AbstractReaderTest extends JDO_Test {
         );
     }
 
+    protected <T> T getBean(final DefaultListableBeanFactory factory, Class<T> clazz, final String name) {
+        return doPrivileged(() -> factory.getBean(name, clazz)
+        );
+    }
+
     @SuppressWarnings("unchecked")
     private static <T> T doPrivileged(PrivilegedAction<T> privilegedAction) {
         try {
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/QueryElementHolder.java b/tck/src/main/java/org/apache/jdo/tck/query/QueryElementHolder.java
index 4e849e73..8726d040 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/QueryElementHolder.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/QueryElementHolder.java
@@ -40,13 +40,13 @@ import java.util.Map;
  * JDO {@link javax.jdo.Query} instance. 
  * Instead, the default of JDO {@link javax.jdo.Query} instance is taken.
  */
-public class QueryElementHolder {
+public class QueryElementHolder<T> {
 
     // fields holding JDOQL query elements
     private final Boolean unique;
     private final String result;
     private final Class<?> resultClass;
-    private final Class<?> candidateClass;
+    private final Class<T> candidateClass;
     private final Boolean excludeSubClasses;
     private final String filter;
     private final String variables;
@@ -58,7 +58,7 @@ public class QueryElementHolder {
     private String toString;
     private Long   fromLong;
     private Long   toLong;
-    private JDOQLTypedQuery<?> jdoqlTypedQuery;
+    private JDOQLTypedQuery<T> jdoqlTypedQuery;
     private Map<String, Object> paramValues;
     
     /**
@@ -84,7 +84,7 @@ public class QueryElementHolder {
      * @param to the JDOQL range to query element
      */
     public QueryElementHolder(Boolean unique, String result, 
-            Class<?> resultClass, Class<?> candidateClass,
+            Class<?> resultClass, Class<T> candidateClass,
             Boolean excludeSubClasses, String filter,
             String variables, String parameters, String imports, 
             String grouping, String ordering, String from, String to) {
@@ -133,11 +133,11 @@ public class QueryElementHolder {
      * @param paramValues the parameter values
      */
     public QueryElementHolder(Boolean unique, String result,
-                              Class<?> resultClass, Class<?> candidateClass,
+                              Class<?> resultClass, Class<T> candidateClass,
                               Boolean excludeSubClasses, String filter,
                               String variables, String parameters, String imports,
                               String grouping, String ordering, String from, String to,
-                              JDOQLTypedQuery<?> jdoqlTypedQuery,
+                              JDOQLTypedQuery<T> jdoqlTypedQuery,
                               Map<String, Object> paramValues) {
         if (from == null ^ to == null) {
             throw new IllegalArgumentException(
@@ -186,11 +186,11 @@ public class QueryElementHolder {
      * @param paramValues the parameter values
      */
     public QueryElementHolder(Boolean unique, String result,
-                              Class<?> resultClass, Class<?> candidateClass,
+                              Class<?> resultClass, Class<T> candidateClass,
                               Boolean excludeSubClasses, String filter,
                               String variables, String parameters, String imports,
                               String grouping, String ordering, long from, long to,
-                              JDOQLTypedQuery<?> jdoqlTypedQuery,
+                              JDOQLTypedQuery<T> jdoqlTypedQuery,
                               Map<String, Object> paramValues) {
         this.unique = unique;
         this.result = result;
@@ -239,7 +239,7 @@ public class QueryElementHolder {
      * @param pm the persistence manager
      * @return the JDO query instance
      */
-    public <T> Query<T> getSingleStringQuery(PersistenceManager pm) {
+    public Query<T> getSingleStringQuery(PersistenceManager pm) {
         return pm.newQuery(toString());
     }
 
@@ -253,11 +253,11 @@ public class QueryElementHolder {
      * @param pm the persistence manager
      * @return the JDO query instance
      */
-    public <T> Query<T> getAPIQuery(PersistenceManager pm) {
+    public Query<T> getAPIQuery(PersistenceManager pm) {
         Extent<T> extent = this.excludeSubClasses != null ?
-                pm.getExtent((Class<T>)this.candidateClass,
+                pm.getExtent(this.candidateClass,
                         !this.excludeSubClasses.booleanValue()) :
-                pm.getExtent((Class<T>)this.candidateClass);
+                pm.getExtent(this.candidateClass);
         Query<T> query = pm.newQuery(extent);
         if (this.unique != null) {
             query.setUnique(this.unique.booleanValue());
@@ -294,7 +294,7 @@ public class QueryElementHolder {
      * Returns the JDOQLTypedQuery instance.
      * @return the JDOQLTypedQuery instance
      */
-    public JDOQLTypedQuery<?> getJDOQLTypedQuery() {
+    public JDOQLTypedQuery<T> getJDOQLTypedQuery() {
         if (this.jdoqlTypedQuery != null) {
             this.rangeToJDOQLTypedQuery(this.jdoqlTypedQuery);
         }
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/QueryTest.java b/tck/src/main/java/org/apache/jdo/tck/query/QueryTest.java
index 54744d85..66bc1ca9 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/QueryTest.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/QueryTest.java
@@ -256,75 +256,56 @@ public abstract class QueryTest extends AbstractReaderTest {
             }
         }
     }
-    
+
     /**
      * Returns a persistent company model instance for the given bean name.
+     * @param clazz class of the returned instance
      * @param beanName the bean name.
      * @return the persistent company model instance. 
      */
-    protected Object getPersistentCompanyModelInstance(String beanName) {
+    protected <T> T getPersistentCompanyModelInstance(Class<T> clazz, String beanName) {
         return beanName == null ? null :
-            getBean(getCompanyModelReaderForPersistentInstances(),beanName);
+                getBean(getCompanyModelReaderForPersistentInstances(), clazz, beanName);
     }
     
     /**
      * Returns a transient company model instance for the given bean name.
+     * @param clazz the class of teh returned instance
      * @param beanName the bean name.
      * @return the transient company model instance. 
      */
-    protected Object getTransientCompanyModelInstance(String beanName) {
+    protected <T> T getTransientCompanyModelInstance(Class<T> clazz, String beanName) {
         return beanName == null ? null :
-            getBean(getCompanyModelReaderForTransientInstances(),beanName);
+                getBean(getCompanyModelReaderForTransientInstances(), clazz, beanName);
     }
-    
-    /**
-     * Returns an array of persistent company model instances for bean names 
-     * in the given argument.
-     * @param beanNames the bean names of company mode instances.
-     * @return the array of persistent company model instances. 
-     */
-    protected Object[] getPersistentCompanyModelInstances(String[] beanNames) {
-        Object[] result = new Object[beanNames.length];
-        for (int i = 0; i < beanNames.length; i++) {
-            result[i] = getPersistentCompanyModelInstance(beanNames[i]);
-        }
-        return result;
-    }
-    
-    /**
-     * Returns an array of transient company model instances for bean names 
-     * in the given argument.
-     * @param beanNames the bean names of company mode instances.
-     * @return the array of transient company model instances. 
-     */
-    protected Object[] getTransientCompanyModelInstances(String[] beanNames) {
-        Object[] result = new Object[beanNames.length];
-        for (int i = 0; i < beanNames.length; i++) {
-            result[i] = getTransientCompanyModelInstance(beanNames[i]);
-        }
-        return result;
-    }
-    
+
     /**
      * Returns a list of persistent company model instances
      * for beans names in the given argument.
+     * @param elementType the element type of the returned list
      * @param beanNames the bean names of company model instances.
      * @return the list of persistent company model instances. 
      */
-    protected List getPersistentCompanyModelInstancesAsList(String... beanNames) {
-        return new ArrayList<>(
-                Arrays.asList(getPersistentCompanyModelInstances(beanNames)));
+    protected <T> List<T> getPersistentCompanyModelInstancesAsList(Class<T> elementType, String... beanNames) {
+        List<T> result = new ArrayList<>(beanNames.length);
+        for (int i = 0; i < beanNames.length; i++) {
+            result.add(getPersistentCompanyModelInstance(elementType, beanNames[i]));
+        }
+        return result;
     }
-    
     /**
      * Returns a list of transient company model instances
      * for beans names in the given argument.
+     * @param elementType the element type of the returned list
      * @param beanNames the bean names of company model instances.
      * @return the list of transient company model instances. 
      */
-    protected List getTransientCompanyModelInstancesAsList(String... beanNames) {
-        return new ArrayList<>(
-                Arrays.asList(getTransientCompanyModelInstances(beanNames)));
+    protected <T> List<T> getTransientCompanyModelInstancesAsList(Class<T> elementType, String... beanNames) {
+        List<T> result = new ArrayList<>(beanNames.length);
+        for (int i = 0; i < beanNames.length; i++) {
+            result.add(getTransientCompanyModelInstance(elementType, beanNames[i]));
+        }
+        return result;
     }
     
     /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/api/MetadataSearchOrder.java b/tck/src/main/java/org/apache/jdo/tck/query/api/MetadataSearchOrder.java
index 18c0c741..49a5c8a6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/api/MetadataSearchOrder.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/api/MetadataSearchOrder.java
@@ -20,6 +20,7 @@ package org.apache.jdo.tck.query.api;
 import javax.jdo.Query;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.pc.mylib.MylibReader;
 import org.apache.jdo.tck.pc.mylib.PCClass;
@@ -50,11 +51,11 @@ public class MetadataSearchOrder extends QueryTest {
      * The expected results of valid queries.
      */
     private final Object[] expectedResult = {
-        getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3", "emp4", "emp5"),
-        getTransientCompanyModelInstancesAsList("emp2", "emp3", "emp4", "emp5"),
-        getTransientMylibInstancesAsList("pcClass1", "pcClass2"),
-        getTransientCompanyModelInstancesAsList("emp3", "emp4", "emp5"),
-        getTransientCompanyModelInstancesAsList("emp4", "emp5")
+        getTransientCompanyModelInstancesAsList(Employee.class,"emp1", "emp2", "emp3", "emp4", "emp5"),
+        getTransientCompanyModelInstancesAsList(Employee.class,"emp2", "emp3", "emp4", "emp5"),
+        getTransientMylibInstancesAsList( "pcClass1", "pcClass2"),
+        getTransientCompanyModelInstancesAsList(Employee.class,"emp3", "emp4", "emp5"),
+        getTransientCompanyModelInstancesAsList(Employee.class,"emp4", "emp5")
     };
             
     /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/api/NewQuerySingleString.java b/tck/src/main/java/org/apache/jdo/tck/query/api/NewQuerySingleString.java
index 7e16c8be..ee9f18a5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/api/NewQuerySingleString.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/api/NewQuerySingleString.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.query.api;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.query.QueryElementHolder;
 import org.apache.jdo.tck.query.QueryTest;
@@ -65,7 +66,7 @@ public class NewQuerySingleString extends QueryTest {
      * The expected results of valid queries.
      */
     private final Object[] expectedResult = {
-        getTransientCompanyModelInstancesAsList(
+        getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5")
     };
             
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/api/QueryExtentions.java b/tck/src/main/java/org/apache/jdo/tck/query/api/QueryExtentions.java
index 93ab0661..742cd3a4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/api/QueryExtentions.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/api/QueryExtentions.java
@@ -23,6 +23,7 @@ import java.util.Map;
 import javax.jdo.Query;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
@@ -51,7 +52,7 @@ public class QueryExtentions extends QueryTest {
      * The expected results of valid queries.
      */
     private final Object[] expectedResult = {
-        getTransientCompanyModelInstancesAsList(
+        getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5")
     };
             
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/api/SampleQueries.java b/tck/src/main/java/org/apache/jdo/tck/query/api/SampleQueries.java
index 65e2d4bd..2a692437 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/api/SampleQueries.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/api/SampleQueries.java
@@ -168,7 +168,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<FullTimeEmployee> expected =
-                    getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp5");
+                    getTransientCompanyModelInstancesAsList(FullTimeEmployee.class,"emp1", "emp2", "emp5");
             try (Query<FullTimeEmployee> q = pm.newQuery(FullTimeEmployee.class, "salary > 30000")) {
                 List<FullTimeEmployee> emps = (List<FullTimeEmployee>)q.execute();
                 checkQueryResultWithoutOrder(ASSERTION_FAILED, SINGLE_STRING_QUERY_01, emps, expected);
@@ -198,7 +198,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<FullTimeEmployee> expected =
-                    getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp5");
+                    getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1", "emp2", "emp5");
             try (Query<FullTimeEmployee> q = pm.newQuery(FullTimeEmployee.class, "salary > 30000")) {
                 List<FullTimeEmployee> emps = q.executeList();
                 checkQueryResultWithoutOrder(ASSERTION_FAILED, SINGLE_STRING_QUERY_01, emps, expected);
@@ -228,7 +228,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<FullTimeEmployee> expected =
-                    getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp5");
+                    getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1", "emp2", "emp5");
             try (Query<FullTimeEmployee> q = pm.newQuery(SINGLE_STRING_QUERY_01)) {
                 List<FullTimeEmployee> emps = q.executeList();
                 checkQueryResultWithoutOrder(ASSERTION_FAILED, SINGLE_STRING_QUERY_01, emps, expected);
@@ -258,7 +258,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<FullTimeEmployee> expected =
-                    getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp5");
+                    getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1", "emp2", "emp5");
             try (JDOQLTypedQuery<FullTimeEmployee> q = pm.newJDOQLTypedQuery(FullTimeEmployee.class)) {
                 QFullTimeEmployee cand = QFullTimeEmployee.candidate();
                 q.filter(cand.salary.gt(30000.));
@@ -286,7 +286,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<FullTimeEmployee> expected =
-                    getTransientCompanyModelInstancesAsList("emp1", "emp5", "emp2");
+                    getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1", "emp5", "emp2");
             try (Query<FullTimeEmployee> q = pm.newQuery(FullTimeEmployee.class, "salary > 30000")) {
                 q.setOrdering ("salary ascending");
                 List<FullTimeEmployee> emps = (List<FullTimeEmployee>)q.execute();
@@ -313,7 +313,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<FullTimeEmployee> expected =
-                    getTransientCompanyModelInstancesAsList("emp1", "emp5", "emp2");
+                    getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1", "emp5", "emp2");
             try (Query<FullTimeEmployee> q = pm.newQuery(FullTimeEmployee.class, "salary > 30000")) {
                 q.setOrdering ("salary ascending");
                 List<FullTimeEmployee> emps = q.executeList();
@@ -340,7 +340,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<FullTimeEmployee> expected =
-                    getTransientCompanyModelInstancesAsList("emp1", "emp5", "emp2");
+                    getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1", "emp5", "emp2");
             try (Query<FullTimeEmployee> q = pm.newQuery(SINGLE_STRING_QUERY_02)) {
                 List<FullTimeEmployee> emps = q.executeList();
                 checkQueryResultWithOrder(ASSERTION_FAILED, SINGLE_STRING_QUERY_02, emps, expected);
@@ -366,7 +366,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<FullTimeEmployee> expected =
-                    getTransientCompanyModelInstancesAsList("emp1", "emp5", "emp2");
+                    getTransientCompanyModelInstancesAsList(FullTimeEmployee.class,"emp1", "emp5", "emp2");
             try (JDOQLTypedQuery<FullTimeEmployee> q = pm.newJDOQLTypedQuery(FullTimeEmployee.class)) {
                 QFullTimeEmployee cand = QFullTimeEmployee.candidate();
                 q.filter(cand.salary.gt(30000.))
@@ -397,7 +397,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList("emp1");
+            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList(FullTimeEmployee.class,"emp1");
             try (Query<FullTimeEmployee> q =
                          pm.newQuery(FullTimeEmployee.class,"salary > sal && firstname.startsWith(begin)")) {
                 q.declareParameters("Double sal, String begin");
@@ -427,7 +427,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList("emp1");
+            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1");
             try (Query<FullTimeEmployee> q =
                     pm.newQuery(FullTimeEmployee.class,"salary > sal && firstname.startsWith(begin)")) {
                 q.declareParameters("Double sal, String begin");
@@ -461,7 +461,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList("emp1");
+            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1");
             try (Query<FullTimeEmployee> q =
                     pm.newQuery(FullTimeEmployee.class,"salary > sal && firstname.startsWith(begin)")) {
                 q.declareParameters("Double sal, String begin");
@@ -492,7 +492,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList("emp1");
+            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1");
             try (Query<FullTimeEmployee> q = pm.newQuery(SINGLE_STRING_QUERY_03)) {
                 List<FullTimeEmployee> emps = (List<FullTimeEmployee>)q.execute(30000., "M");
                 checkQueryResultWithoutOrder(ASSERTION_FAILED, SINGLE_STRING_QUERY_03, emps, expected);
@@ -520,7 +520,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList("emp1");
+            List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1");
             try (JDOQLTypedQuery<FullTimeEmployee> q = pm.newJDOQLTypedQuery(FullTimeEmployee.class)) {
                 QFullTimeEmployee cand = QFullTimeEmployee.candidate();
                 NumericExpression<Double> sal = q.numericParameter("sal", Double.class);
@@ -556,7 +556,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3");
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3");
             try (Query<Employee> q = pm.newQuery(Employee.class, "department.name == dep")) {
                 q.declareParameters("String dep");
                 List<Employee> emps = (List<Employee>)q.execute ("R&D");
@@ -585,7 +585,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3");
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3");
             try (Query<Employee> q = pm.newQuery (Employee.class, "department.name == dep")) {
                 q.declareParameters ("String dep");
                 Map<String, Object> paramValues = new HashMap<>();
@@ -617,7 +617,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3");
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3");
             try (Query<Employee> q = pm.newQuery (Employee.class, "department.name == dep")) {
                 q.declareParameters ("String dep");
                 q.setParameters("R&D");
@@ -647,7 +647,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3");
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3");
             try (Query<Employee> q = pm.newQuery (SINGLE_STRING_QUERY_04)) {
                 Map<String, Object> paramValues = new HashMap<>();
                 paramValues.put("dep", "R&D");
@@ -678,7 +678,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3");
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3");
             try (JDOQLTypedQuery<Employee> q = pm.newJDOQLTypedQuery(Employee.class)) {
                 QEmployee cand = QEmployee.candidate();
                 StringExpression dep = q.stringParameter("dep");
@@ -710,7 +710,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Department> expected = getTransientCompanyModelInstancesAsList("dept1");
+            List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
             try (Query<Department> q =
                          pm.newQuery(Department.class, "employees.contains (emp) && emp.weeklyhours > hours")) {
                 q.declareVariables("Employee emp");
@@ -739,7 +739,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Department> expected = getTransientCompanyModelInstancesAsList("dept1");
+            List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
             try (Query<Department> q =
                          pm.newQuery(Department.class, "employees.contains (emp) && emp.weeklyhours > hours")) {
                 q.declareVariables("Employee emp");
@@ -771,7 +771,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Department> expected = getTransientCompanyModelInstancesAsList("dept1");
+            List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
             try (Query<Department> q =
                          pm.newQuery(Department.class, "employees.contains (emp) && emp.weeklyhours > hours")) {
                 q.declareVariables("Employee emp");
@@ -801,7 +801,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Department> expected = getTransientCompanyModelInstancesAsList("dept1");
+            List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
             try (Query<Department> q = pm.newQuery(SINGLE_STRING_QUERY_05)) {
                 List<Department> deps = (List<Department>)q.execute (30.);
                 checkQueryResultWithoutOrder(ASSERTION_FAILED, SINGLE_STRING_QUERY_05, deps, expected);
@@ -827,7 +827,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Department> expected = getTransientCompanyModelInstancesAsList("dept1");
+            List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
             try (JDOQLTypedQuery<Department> q = pm.newJDOQLTypedQuery(Department.class)) {
                 QDepartment cand = QDepartment.candidate();
                 QEmployee emp = QEmployee.variable("emp");
@@ -860,7 +860,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Department> expected =
-                    getTransientCompanyModelInstancesAsList("dept1", "dept2", "dept3");
+                    getTransientCompanyModelInstancesAsList(Department.class, "dept1", "dept2", "dept3");
             try (Query<Department> q = pm.newQuery(Department.class, "depts.contains(name)")) {
                 q.declareParameters("java.util.Collection depts");
                 List<String> deptNames = Arrays.asList("R&D", "Sales", "Marketing");
@@ -888,7 +888,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Department> expected =
-                    getTransientCompanyModelInstancesAsList("dept1", "dept2", "dept3");
+                    getTransientCompanyModelInstancesAsList(Department.class, "dept1", "dept2", "dept3");
             try (Query<Department> q = pm.newQuery(Department.class, "depts.contains(name)")) {
                 q.declareParameters("java.util.Collection depts");
                 Map<String, Object> paramValues = new HashMap<>();
@@ -918,7 +918,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Department> expected =
-                    getTransientCompanyModelInstancesAsList("dept1", "dept2", "dept3");
+                    getTransientCompanyModelInstancesAsList(Department.class, "dept1", "dept2", "dept3");
             try (Query<Department> q = pm.newQuery(Department.class, "depts.contains(name)")) {
                 q.declareParameters("java.util.Collection depts");
                 q.setParameters(Arrays.asList("R&D", "Sales", "Marketing"));
@@ -946,7 +946,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Department> expected =
-                    getTransientCompanyModelInstancesAsList("dept1", "dept2", "dept3");
+                    getTransientCompanyModelInstancesAsList(Department.class, "dept1", "dept2", "dept3");
             try (Query<Department> q = pm.newQuery(SINGLE_STRING_QUERY_06)) {
                 Map<String, Object> paramValues = new HashMap<>();
                 paramValues.put("depts", Arrays.asList("R&D", "Sales", "Marketing"));
@@ -975,7 +975,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Department> expected =
-                    getTransientCompanyModelInstancesAsList("dept1", "dept2", "dept3");
+                    getTransientCompanyModelInstancesAsList(Department.class, "dept1", "dept2", "dept3");
             try (JDOQLTypedQuery<Department> q = pm.newJDOQLTypedQuery(Department.class)) {
                 QDepartment cand = QDepartment.candidate();
                 CollectionExpression<Collection<String>, String> depts =
@@ -1293,7 +1293,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Info> expected = Arrays.asList(
-                    new Info("Michael", 40000., (Employee)getTransientCompanyModelInstance("emp2")),
+                    new Info("Michael", 40000., getTransientCompanyModelInstance(Employee.class,"emp2")),
                     new Info("Craig", 50000., null)
             );
             try (Query<FullTimeEmployee> q =
@@ -1324,7 +1324,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Info> expected = Arrays.asList(
-                    new Info("Michael", 40000., (Employee)getTransientCompanyModelInstance("emp2")),
+                    new Info("Michael", 40000., getTransientCompanyModelInstance(Employee.class, "emp2")),
                     new Info("Craig", 50000., null)
             );
             try (Query<FullTimeEmployee> q =
@@ -1358,7 +1358,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Info> expected = Arrays.asList(
-                    new Info("Michael", 40000., (Employee)getTransientCompanyModelInstance("emp2")),
+                    new Info("Michael", 40000., getTransientCompanyModelInstance(Employee.class, "emp2")),
                     new Info("Craig", 50000., null)
             );
             try (Query<FullTimeEmployee> q =
@@ -1390,7 +1390,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Info> expected = Arrays.asList(
-                    new Info("Michael", 40000., (Employee)getTransientCompanyModelInstance("emp2")),
+                    new Info("Michael", 40000., getTransientCompanyModelInstance(Employee.class, "emp2")),
                     new Info("Craig", 50000., null)
             );
             try (Query<FullTimeEmployee> q = pm.newQuery(SINGLE_STRING_QUERY_09)) {
@@ -1419,7 +1419,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Info> expected = Arrays.asList(
-                    new Info("Michael", 40000., (Employee)getTransientCompanyModelInstance("emp2")),
+                    new Info("Michael", 40000., getTransientCompanyModelInstance(Employee.class, "emp2")),
                     new Info("Craig", 50000., null)
             );
             try (Query<FullTimeEmployee> q = pm.newNamedQuery(FullTimeEmployee.class, "constructor")) {
@@ -1448,7 +1448,7 @@ public class SampleQueries extends QueryTest {
         try {
             tx.begin();
             List<Info> expected = Arrays.asList(
-                    new Info("Michael", 40000., (Employee)getTransientCompanyModelInstance("emp2")),
+                    new Info("Michael", 40000., getTransientCompanyModelInstance(Employee.class, "emp2")),
                     new Info("Craig", 50000., null)
             );
             try (JDOQLTypedQuery<FullTimeEmployee> q = pm.newJDOQLTypedQuery(FullTimeEmployee.class)) {
@@ -1926,7 +1926,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Employee expectedEmp = (Employee)getTransientCompanyModelInstance("emp1");
+            Employee expectedEmp = getTransientCompanyModelInstance(Employee.class, "emp1");
             try (Query<Employee> q = pm.newQuery(Employee.class, "firstname == empName")) {
                 q.setUnique(true);
                 q.declareParameters ("String empName");
@@ -1952,7 +1952,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Employee expectedEmp = (Employee)getTransientCompanyModelInstance("emp1");
+            Employee expectedEmp = getTransientCompanyModelInstance(Employee.class, "emp1");
             try (Query<Employee> q = pm.newQuery (Employee.class, "firstname == empName")) {
                 q.setUnique(true);
                 q.declareParameters ("String empName");
@@ -1981,7 +1981,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Employee expectedEmp = (Employee)getTransientCompanyModelInstance("emp1");
+            Employee expectedEmp = getTransientCompanyModelInstance(Employee.class, "emp1");
             try (Query<Employee> q = pm.newQuery (Employee.class, "firstname == empName")) {
                 q.setUnique(true);
                 q.declareParameters ("String empName");
@@ -2008,7 +2008,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Employee expectedEmp = (Employee)getTransientCompanyModelInstance("emp1");
+            Employee expectedEmp = getTransientCompanyModelInstance(Employee.class, "emp1");
             try (Query<Employee> q = pm.newQuery (SINGLE_STRING_QUERY_13)) {
                 q.setParameters("Michael");
                 Employee emp = q.executeResultUnique(Employee.class);
@@ -2033,7 +2033,7 @@ public class SampleQueries extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Employee expectedEmp = (Employee)getTransientCompanyModelInstance("emp1");
+            Employee expectedEmp = getTransientCompanyModelInstance(Employee.class, "emp1");
             try (JDOQLTypedQuery<Employee> q = pm.newJDOQLTypedQuery(Employee.class)) {
                 QEmployee cand = QEmployee.candidate();
                 StringExpression empName = q.stringParameter("empName");
@@ -2893,7 +2893,7 @@ public class SampleQueries extends QueryTest {
         Info info1 = new Info();
         info1.firstname = "Michael";
         info1.salary = 40000.;
-        info1.reportsTo = (Employee)getTransientCompanyModelInstance("emp2");
+        info1.reportsTo = getTransientCompanyModelInstance(Employee.class, "emp2");
         Info info2 = new Info();
         info2.firstname = "Craig";
         info2.salary = 50000.;
@@ -2903,21 +2903,21 @@ public class SampleQueries extends QueryTest {
 
     private List<EmpWrapper> testQuery15Helper() {
         EmpWrapper wrapper1 = new EmpWrapper();
-        wrapper1.FullTimeEmployee = (FullTimeEmployee)getTransientCompanyModelInstance("emp1");
+        wrapper1.FullTimeEmployee = getTransientCompanyModelInstance(FullTimeEmployee.class, "emp1");
         EmpWrapper wrapper2 = new EmpWrapper();
-        wrapper2.FullTimeEmployee = (FullTimeEmployee)getTransientCompanyModelInstance("emp2");
+        wrapper2.FullTimeEmployee = getTransientCompanyModelInstance(FullTimeEmployee.class, "emp2");
         EmpWrapper wrapper3 = new EmpWrapper();
-        wrapper3.FullTimeEmployee = (FullTimeEmployee)getTransientCompanyModelInstance("emp5");
+        wrapper3.FullTimeEmployee = getTransientCompanyModelInstance(FullTimeEmployee.class, "emp5");
         return Arrays.asList(wrapper1, wrapper2, wrapper3);
     }
 
     private List<EmpInfo> testQuery16Helper() {
         EmpInfo info1 = new EmpInfo();
-        info1.setFullTimeEmployee((FullTimeEmployee) getTransientCompanyModelInstance("emp1"));
+        info1.setFullTimeEmployee( getTransientCompanyModelInstance(FullTimeEmployee.class, "emp1"));
         EmpInfo info2 = new EmpInfo();
-        info2.setFullTimeEmployee((FullTimeEmployee) getTransientCompanyModelInstance("emp2"));
+        info2.setFullTimeEmployee( getTransientCompanyModelInstance(FullTimeEmployee.class, "emp2"));
         EmpInfo info3 = new EmpInfo();
-        info3.setFullTimeEmployee((FullTimeEmployee) getTransientCompanyModelInstance("emp5"));
+        info3.setFullTimeEmployee( getTransientCompanyModelInstance(FullTimeEmployee.class, "emp5"));
         return Arrays.asList(info1, info2, info3);
     }
 
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/api/SetRange.java b/tck/src/main/java/org/apache/jdo/tck/query/api/SetRange.java
index 655d7eef..fecec5ff 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/api/SetRange.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/api/SetRange.java
@@ -20,6 +20,7 @@ package org.apache.jdo.tck.query.api;
 import javax.jdo.Query;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
@@ -46,7 +47,7 @@ public class SetRange extends QueryTest {
      * The expected results of valid queries.
      */
     private final Object[] expectedResult = {
-        getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3", "emp4", "emp5")
+        getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3", "emp4", "emp5")
     };
             
     /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/api/SetUnique.java b/tck/src/main/java/org/apache/jdo/tck/query/api/SetUnique.java
index 37e93146..b6b95853 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/api/SetUnique.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/api/SetUnique.java
@@ -20,6 +20,7 @@ package org.apache.jdo.tck.query.api;
 import javax.jdo.Query;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
@@ -45,8 +46,8 @@ public class SetUnique extends QueryTest {
      * The expected results of valid queries.
      */
     private final Object[] expectedResult = {
-        getTransientCompanyModelInstance("emp1"),
-        getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3", "emp4", "emp5")
+        getTransientCompanyModelInstance(Employee.class, "emp1"),
+        getTransientCompanyModelInstancesAsList(Employee.class,"emp1", "emp2", "emp3", "emp4", "emp5")
     };
             
     /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/api/SetterReplacePreviousValues.java b/tck/src/main/java/org/apache/jdo/tck/query/api/SetterReplacePreviousValues.java
index 23b17983..4b9eeccf 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/api/SetterReplacePreviousValues.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/api/SetterReplacePreviousValues.java
@@ -101,11 +101,11 @@ public class SetterReplacePreviousValues extends QueryTest {
      */
     private final Object[] expectedResult = {
         // replace parameter declaration
-        getTransientCompanyModelInstancesAsList("dept1"),
+        getTransientCompanyModelInstancesAsList(Department.class, "dept1"),
         // replace filter setting
-        getTransientCompanyModelInstancesAsList("emp2"),
+        getTransientCompanyModelInstancesAsList(Employee.class, "emp2"),
         // replace variable declaration
-        getTransientCompanyModelInstancesAsList("dept1")
+        getTransientCompanyModelInstancesAsList(Department.class, "dept1")
     };
     
     /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/api/SingleStringQuery.java b/tck/src/main/java/org/apache/jdo/tck/query/api/SingleStringQuery.java
index 35476d7a..293838c1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/api/SingleStringQuery.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/api/SingleStringQuery.java
@@ -22,6 +22,7 @@ import java.math.BigDecimal;
 import javax.jdo.Query;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.FullTimeEmployee;
 import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.query.result.classes.FullName;
@@ -71,7 +72,7 @@ public class SingleStringQuery extends QueryTest {
      */
     private final Object[] expectedResult = {
         new FullName("emp1First", "emp1Last"),
-        getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp5")
+        getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp5")
     };
             
     /** Parameters of valid queries. */
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/delete/DeleteCallback.java b/tck/src/main/java/org/apache/jdo/tck/query/delete/DeleteCallback.java
index 5718db5c..46ec774f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/delete/DeleteCallback.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/delete/DeleteCallback.java
@@ -114,7 +114,7 @@ public class DeleteCallback extends QueryTest {
      * The expected results of valid queries.
      */
     private final List<?>[] expectedResult = {
-            getTransientCompanyModelInstancesAsList(
+            getTransientCompanyModelInstancesAsList(Employee.class,
                     "emp1", "emp2", "emp3", "emp4", "emp5"),
             getTransientMylibInstancesAsList(
                     "primitiveTypesPositive", 
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/Cast.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/Cast.java
index 725924ee..624324b6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/Cast.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/Cast.java
@@ -29,6 +29,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Cast Query Operator
@@ -59,7 +60,7 @@ public class Cast extends QueryTest {
     
     /** */
     public void testPositive0() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp5");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp5");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -92,7 +93,7 @@ public class Cast extends QueryTest {
 
     /** */
     public void testPositive1() {
-        Object expected = getTransientCompanyModelInstancesAsList("dept1", "dept2");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1", "dept2");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/ComparingCollectionFieldToNull.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/ComparingCollectionFieldToNull.java
index fbf37a8a..0c7a6b94 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/ComparingCollectionFieldToNull.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/ComparingCollectionFieldToNull.java
@@ -97,11 +97,11 @@ public class ComparingCollectionFieldToNull extends QueryTest {
     protected void localSetUp() {
         addTearDownClass(CompanyModelReader.getTearDownClasses());
         loadAndPersistCompanyModel(getPM());
-        Employee employee = (Employee) getPersistentCompanyModelInstance("emp1");
+        Employee employee = getPersistentCompanyModelInstance(Employee.class,"emp1");
         expectedResult =
             // emp1 should be in the query result set,
             // if the JDO Implentation supports null values for Collections
-            getTransientCompanyModelInstancesAsList(
+            getTransientCompanyModelInstancesAsList(Employee.class,
                 isNullCollectionSupported() ? 
                     new String[]{"emp1"} : new String[]{});
         if (isNullCollectionSupported()) {
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/ComparingPersistentAndNonPersistentInstance.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/ComparingPersistentAndNonPersistentInstance.java
index 7e8f835b..4dccc107 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/ComparingPersistentAndNonPersistentInstance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/ComparingPersistentAndNonPersistentInstance.java
@@ -27,6 +27,7 @@ import org.apache.jdo.tck.util.BatchTestRunner;
 import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.query.Expression;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -59,7 +60,7 @@ public class ComparingPersistentAndNonPersistentInstance
 
     /** */
     public void testPositive0() {
-        Object expected = getTransientCompanyModelInstancesAsList();
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class);
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -67,7 +68,7 @@ public class ComparingPersistentAndNonPersistentInstance
         query.filter(cand.eq(empParam));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("param", getTransientCompanyModelInstance("emp1"));
+        paramValues.put("param", getTransientCompanyModelInstance(Employee.class, "emp1"));
 
         QueryElementHolder holder = new QueryElementHolder(
                 /*UNIQUE*/      null,
@@ -93,7 +94,7 @@ public class ComparingPersistentAndNonPersistentInstance
 
     /** */
     public void testPositive1() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        Object expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -102,7 +103,7 @@ public class ComparingPersistentAndNonPersistentInstance
         query.filter(cand.personid.eq(empParam.personid));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("param", getTransientCompanyModelInstance("emp1"));
+        paramValues.put("param", getTransientCompanyModelInstance(Employee.class, "emp1"));
 
         QueryElementHolder holder = new QueryElementHolder(
                 /*UNIQUE*/      null,
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/DenoteUniquenessInFilter.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/DenoteUniquenessInFilter.java
index 14c72b64..0899a4e4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/DenoteUniquenessInFilter.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/DenoteUniquenessInFilter.java
@@ -19,6 +19,7 @@ package org.apache.jdo.tck.query.jdoql;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Department;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.QDepartment;
 import org.apache.jdo.tck.pc.company.QEmployee;
 import org.apache.jdo.tck.query.QueryElementHolder;
@@ -26,6 +27,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Element Returned in Query Result
@@ -66,7 +68,7 @@ public class DenoteUniquenessInFilter extends QueryTest {
     public void testPositive0() {
         // Uniqueness not specified.
         // emp1 qualifies for both contains clause => result is dept1
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -103,7 +105,7 @@ public class DenoteUniquenessInFilter extends QueryTest {
         // Uniqueness specified.
         // Only emp3 qualifies for both contains clause.
         // Condition e1 != e2 violated => result is empty
-        Object expected = getTransientCompanyModelInstancesAsList();
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class);
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -143,7 +145,7 @@ public class DenoteUniquenessInFilter extends QueryTest {
         // emp1 and emp2 match the second contains clause.
         // Thus, there are two different values for e1 and e2
         // satifying the entire filter => result is dept1
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/Having.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/Having.java
index c8a641a0..487d9793 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/Having.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/Having.java
@@ -20,6 +20,7 @@ package org.apache.jdo.tck.query.jdoql;
 import java.util.Arrays;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Department;
 import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.QEmployee;
 import org.apache.jdo.tck.query.QueryElementHolder;
@@ -95,10 +96,10 @@ public class Having extends QueryTest {
     public void testPositive0() {
         Object expected = Arrays.asList(new Object[] {
                 new Object[] {
-                        getTransientCompanyModelInstance("dept1"),
+                        getTransientCompanyModelInstance(Department.class, "dept1"),
                         Double.valueOf(33.0)},
                 new Object[] {
-                        getTransientCompanyModelInstance("dept2"),
+                        getTransientCompanyModelInstance(Department.class, "dept2"),
                         Double.valueOf(0.0)}});
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
@@ -133,10 +134,10 @@ public class Having extends QueryTest {
         // HAVING clause uses field that isn't contained in the SELECT clause.
         Object expected = Arrays.asList(new Object[] {
                 new Object[] {
-                        getTransientCompanyModelInstance("dept1"),
+                        getTransientCompanyModelInstance(Department.class, "dept1"),
                         Double.valueOf(33.0)},
                 new Object[] {
-                        getTransientCompanyModelInstance("dept2"),
+                        getTransientCompanyModelInstance(Department.class, "dept2"),
                         Double.valueOf(0.0)}});
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/IdentifiersEqualFieldNames.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/IdentifiersEqualFieldNames.java
index 323f377e..01f0d21f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/IdentifiersEqualFieldNames.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/IdentifiersEqualFieldNames.java
@@ -19,6 +19,7 @@ package org.apache.jdo.tck.query.jdoql;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Department;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.query.QueryElementHolder;
 import org.apache.jdo.tck.query.QueryTest;
@@ -28,6 +29,7 @@ import org.apache.jdo.tck.pc.company.QDepartment;
 import org.apache.jdo.tck.pc.company.QPerson;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Identifiers Equal Field Names.
@@ -58,7 +60,7 @@ public class IdentifiersEqualFieldNames extends QueryTest {
     
     /** */
     public void testPositive0() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -88,7 +90,7 @@ public class IdentifiersEqualFieldNames extends QueryTest {
 
     /** */
     public void testPositive1() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -119,7 +121,7 @@ public class IdentifiersEqualFieldNames extends QueryTest {
 
     /** */
     public void testPositive2() {
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -149,7 +151,7 @@ public class IdentifiersEqualFieldNames extends QueryTest {
 
     /** */
     public void testPositive3() {
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -179,7 +181,7 @@ public class IdentifiersEqualFieldNames extends QueryTest {
 
     /** */
     public void testPositive4() {
-        Object expected = getTransientCompanyModelInstancesAsList("dept1") ;
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1") ;
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java
index ec870190..8c45ea8c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java
@@ -30,6 +30,7 @@ import org.apache.jdo.tck.util.BatchTestRunner;
 import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.query.BooleanExpression;
 import javax.jdo.query.IfThenElseExpression;
+import java.util.List;
 
 /**
  *<B>Title:</B> Use of If Else expression in filter
@@ -111,7 +112,7 @@ public class IfElseInFilter extends QueryTest {
     /** */
     public void testPositive0() {
         // simple If/Else using literals
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp5");
+        List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1", "emp5");
 
         JDOQLTypedQuery<FullTimeEmployee> query = getPM().newJDOQLTypedQuery(FullTimeEmployee.class);
         QFullTimeEmployee cand = QFullTimeEmployee.candidate();
@@ -144,7 +145,7 @@ public class IfElseInFilter extends QueryTest {
     /** */
     public void testPositive1() {
         // simple If/Else using relationships
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -177,7 +178,7 @@ public class IfElseInFilter extends QueryTest {
     /** */
     public void testPositive2() {
         // multiple If/Else with distinct conditions
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1");
 
         JDOQLTypedQuery<FullTimeEmployee> query = getPM().newJDOQLTypedQuery(FullTimeEmployee.class);
         QFullTimeEmployee cand = QFullTimeEmployee.candidate();
@@ -215,7 +216,7 @@ public class IfElseInFilter extends QueryTest {
     /** */
     public void testPositive3() {
         // multiple If/Else with overlapping conditions
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<FullTimeEmployee> expected = getTransientCompanyModelInstancesAsList(FullTimeEmployee.class, "emp1");
 
         JDOQLTypedQuery<FullTimeEmployee> query = getPM().newJDOQLTypedQuery(FullTimeEmployee.class);
         QFullTimeEmployee cand = QFullTimeEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/MultipleIdenticalImports.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/MultipleIdenticalImports.java
index 1aaaa6a7..7b25529a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/MultipleIdenticalImports.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/MultipleIdenticalImports.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.query.jdoql;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.jdo.JDOQLTypedQuery;
@@ -61,7 +62,7 @@ public class MultipleIdenticalImports extends QueryTest {
      *
      */
     public void testImportDepartmentTwice() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -69,7 +70,7 @@ public class MultipleIdenticalImports extends QueryTest {
         query.filter(cand.department.eq(empParam));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("d", getPersistentCompanyModelInstance("dept1"));
+        paramValues.put("d", getPersistentCompanyModelInstance(Department.class, "dept1"));
 
         // Import Department twice
         QueryElementHolder holder = new QueryElementHolder(
@@ -99,7 +100,7 @@ public class MultipleIdenticalImports extends QueryTest {
      *
      */
     public void testImportDepartmentExplicitlyAndPerTypeImportOnDemand() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,"emp1", "emp2", "emp3");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -107,7 +108,7 @@ public class MultipleIdenticalImports extends QueryTest {
         query.filter(cand.department.eq(empParam));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("d", getPersistentCompanyModelInstance("dept1"));
+        paramValues.put("d", getPersistentCompanyModelInstance(Department.class, "dept1"));
 
         // Import Department explictly and per type-import-on-demand
         QueryElementHolder holder = new QueryElementHolder(
@@ -137,7 +138,7 @@ public class MultipleIdenticalImports extends QueryTest {
      * 
      */
     public void testTypeImportOnDemandTwice() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -145,7 +146,7 @@ public class MultipleIdenticalImports extends QueryTest {
         query.filter(cand.department.eq(empParam));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("d", getPersistentCompanyModelInstance("dept1"));
+        paramValues.put("d", getPersistentCompanyModelInstance(Department.class, "dept1"));
 
         // type-import-on-demand twice
         QueryElementHolder holder = new QueryElementHolder(
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationComparisonWithNull.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationComparisonWithNull.java
index 35a90f41..89abea88 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationComparisonWithNull.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationComparisonWithNull.java
@@ -27,6 +27,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Navigation Through a Reference and comparing a Relationship with null
@@ -88,7 +89,7 @@ public class NavigationComparisonWithNull extends QueryTest {
      */
     public void testPositive0() {
         // 0: simple manager check being null
-        Object expected = getTransientCompanyModelInstancesAsList("emp0", "emp4", "emp7");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp0", "emp4", "emp7");
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
         query.filter(cand.manager.eq((Employee)null));
@@ -120,7 +121,7 @@ public class NavigationComparisonWithNull extends QueryTest {
      */
     public void testPositive1() {
         // 1: simple manager check being not null
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp1", "emp2", "emp3", "emp5", "emp6", "emp8", "emp9", "emp10");
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -153,7 +154,7 @@ public class NavigationComparisonWithNull extends QueryTest {
      */
     public void testPositive2() {
         // 2: simple manager check being not null using not operator
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp1", "emp2", "emp3", "emp5", "emp6", "emp8", "emp9", "emp10");
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -187,7 +188,7 @@ public class NavigationComparisonWithNull extends QueryTest {
      */
     public void testPositive3() {
         // 3: manager's manager check
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp0", "emp1", "emp4", "emp5", "emp6", "emp7", "emp8", "emp9");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
@@ -221,7 +222,7 @@ public class NavigationComparisonWithNull extends QueryTest {
      */
     public void testPositive4() {
        // 4: manager's manager check with extra check on first level manager
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp1", "emp5", "emp6", "emp8", "emp9");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
@@ -255,7 +256,7 @@ public class NavigationComparisonWithNull extends QueryTest {
      */
     public void testPositive5() {
         // 5 : manager's manager check not being null
-        Object expected = getTransientCompanyModelInstancesAsList("emp2", "emp3", "emp10");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2", "emp3", "emp10");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -288,7 +289,7 @@ public class NavigationComparisonWithNull extends QueryTest {
      */
     public void testPositive6() {
         // 6 : manager's manager check not being null using not operator
-        Object expected = getTransientCompanyModelInstancesAsList("emp2", "emp3", "emp10");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2", "emp3", "emp10");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -322,7 +323,7 @@ public class NavigationComparisonWithNull extends QueryTest {
      * Disabled, because it currently fails on the RI.
      */
     public void testPositive7() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<MedicalInsurance> expected = getTransientCompanyModelInstancesAsList(MedicalInsurance.class,
                 "medicalIns1", "medicalIns4", "medicalIns5", "medicalIns98");
 
         JDOQLTypedQuery<MedicalInsurance> query = getPM().newJDOQLTypedQuery(MedicalInsurance.class);
@@ -356,7 +357,8 @@ public class NavigationComparisonWithNull extends QueryTest {
      */
     public void testPositive8() {
         // 8 : multiple relationships 
-        Object expected = getTransientCompanyModelInstancesAsList("medicalIns1", "medicalIns5");
+        List<MedicalInsurance> expected =
+                getTransientCompanyModelInstancesAsList(MedicalInsurance.class, "medicalIns1", "medicalIns5");
 
         JDOQLTypedQuery<MedicalInsurance> query = getPM().newJDOQLTypedQuery(MedicalInsurance.class);
         QMedicalInsurance cand = QMedicalInsurance.candidate();
@@ -391,7 +393,8 @@ public class NavigationComparisonWithNull extends QueryTest {
      */
     public void testPositive9() {
         // 9 : multiple relationships 
-        Object expected = getTransientCompanyModelInstancesAsList("medicalIns2", "medicalIns3");
+        List<MedicalInsurance> expected =
+                getTransientCompanyModelInstancesAsList(MedicalInsurance.class, "medicalIns2", "medicalIns3");
 
         JDOQLTypedQuery<MedicalInsurance> query = getPM().newJDOQLTypedQuery(MedicalInsurance.class);
         QMedicalInsurance cand = QMedicalInsurance.candidate();
@@ -423,7 +426,8 @@ public class NavigationComparisonWithNull extends QueryTest {
      * !(this.employee.manager.manager == null)
      */
     public void testPositive10() {
-        Object expected = getTransientCompanyModelInstancesAsList("medicalIns2", "medicalIns3");
+        List<MedicalInsurance> expected =
+                getTransientCompanyModelInstancesAsList(MedicalInsurance.class, "medicalIns2", "medicalIns3");
 
         JDOQLTypedQuery<MedicalInsurance> query = getPM().newJDOQLTypedQuery(MedicalInsurance.class);
         QMedicalInsurance cand = QMedicalInsurance.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughACollectionField.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughACollectionField.java
index f183e788..0cd189cd 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughACollectionField.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughACollectionField.java
@@ -26,6 +26,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Navigation Through a Collection Field
@@ -69,7 +70,7 @@ public class NavigationThroughACollectionField extends QueryTest {
     
     /** */
     public void testPositive() {
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughANullValuedField.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughANullValuedField.java
index ab0aa8fb..fcb685c8 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughANullValuedField.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughANullValuedField.java
@@ -27,6 +27,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Navigation Through a Null-Valued Field
@@ -75,7 +76,7 @@ public class NavigationThroughANullValuedField extends QueryTest {
         // navigation through reference relationship field
         // the relationship medicalInsurance is not set for emp2 and emp3 =>
         // they should not be part of the result
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -106,7 +107,7 @@ public class NavigationThroughANullValuedField extends QueryTest {
     public void testPositive2() {
         // navigation through reference relationship field
         // emp5 and emp6 have have emp4 as manager
-        Object expected = getTransientCompanyModelInstancesAsList("emp5", "emp6");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp5", "emp6");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -135,7 +136,8 @@ public class NavigationThroughANullValuedField extends QueryTest {
     }
     public void testPositive3() {
         // multiple navigation through reference relationship field
-        Object expected = getTransientCompanyModelInstancesAsList("emp2", "emp3", "emp10");
+        List<Employee> expected =
+                getTransientCompanyModelInstancesAsList(Employee.class, "emp2", "emp3", "emp10");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -167,7 +169,7 @@ public class NavigationThroughANullValuedField extends QueryTest {
         // employees emp2 and emp3 do not have a medicalInsurance, but emp1
         // matches the filter such that dept1 qualifies for inclusion in the
         // result set.
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughReferencesUsesDotOperator.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughReferencesUsesDotOperator.java
index 792cc7c0..eca789ac 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughReferencesUsesDotOperator.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NavigationThroughReferencesUsesDotOperator.java
@@ -27,6 +27,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Navigation Through a References uses Dot Operator
@@ -70,7 +71,7 @@ public class NavigationThroughReferencesUsesDotOperator extends QueryTest {
 
     public void testPositive0() {
         // navigation through one relationship
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,"emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -100,7 +101,7 @@ public class NavigationThroughReferencesUsesDotOperator extends QueryTest {
 
     public void testPositive1() {
         // navigation through multiple relationships
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<MedicalInsurance> expected = getTransientCompanyModelInstancesAsList(MedicalInsurance.class,
                 "medicalIns1", "medicalIns2", "medicalIns3", "medicalIns4",  "medicalIns5");
 
         JDOQLTypedQuery<MedicalInsurance> query = getPM().newJDOQLTypedQuery(MedicalInsurance.class);
@@ -131,7 +132,7 @@ public class NavigationThroughReferencesUsesDotOperator extends QueryTest {
 
     public void testPositive2() {
         // navigation through a self referencing relationship
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<MedicalInsurance> expected = getTransientCompanyModelInstancesAsList(MedicalInsurance.class,
                 "medicalIns2", "medicalIns3");
 
         JDOQLTypedQuery<MedicalInsurance> query = getPM().newJDOQLTypedQuery(MedicalInsurance.class);
@@ -162,7 +163,7 @@ public class NavigationThroughReferencesUsesDotOperator extends QueryTest {
 
     public void testPositive3() {
         // navigation through a self referencing relationship multiple times
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<MedicalInsurance> expected = getTransientCompanyModelInstancesAsList(MedicalInsurance.class,
                 "medicalIns2", "medicalIns3");
 
         JDOQLTypedQuery<MedicalInsurance> query = getPM().newJDOQLTypedQuery(MedicalInsurance.class);
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndContainsMethod.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndContainsMethod.java
index e5d5961c..e071fe28 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndContainsMethod.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndContainsMethod.java
@@ -28,6 +28,7 @@ import org.apache.jdo.tck.util.BatchTestRunner;
 import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.query.Expression;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -62,7 +63,7 @@ public class NullCollectionsAndContainsMethod extends QueryTest {
      *
      */
     public void testContains1() {
-        Object expected = getTransientCompanyModelInstancesAsList(new String[]{});
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class);
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -70,7 +71,7 @@ public class NullCollectionsAndContainsMethod extends QueryTest {
         query.filter(cand.personid.eq(1L).and(cand.projects.contains(empParam)));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("p", getPersistentCompanyModelInstance("proj1"));
+        paramValues.put("p", getPersistentCompanyModelInstance(Project.class, "proj1"));
 
         // contains
         QueryElementHolder holder = new QueryElementHolder(
@@ -99,7 +100,7 @@ public class NullCollectionsAndContainsMethod extends QueryTest {
      *
      */
     public void testContains2() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp2", "emp3");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2", "emp3");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -107,7 +108,7 @@ public class NullCollectionsAndContainsMethod extends QueryTest {
         query.filter(cand.projects.contains(empParam));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("p", getPersistentCompanyModelInstance("proj1"));
+        paramValues.put("p", getPersistentCompanyModelInstance(Project.class, "proj1"));
 
         // contains
         QueryElementHolder holder = new QueryElementHolder(
@@ -140,7 +141,7 @@ public class NullCollectionsAndContainsMethod extends QueryTest {
         addTearDownClass(CompanyModelReader.getTearDownClasses());
         loadAndPersistCompanyModel(getPM());
         getPM().currentTransaction().begin();
-        Employee emp1 = (Employee) getPersistentCompanyModelInstance("emp1");
+        Employee emp1 = getPersistentCompanyModelInstance(Employee.class, "emp1");
         emp1.setProjects(null);
         getPM().currentTransaction().commit();
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndIsEmpty.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndIsEmpty.java
index f32462bc..6612d177 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndIsEmpty.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/NullCollectionsAndIsEmpty.java
@@ -25,6 +25,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Handling of Null Collections and isEmpty in Queries
@@ -56,7 +57,7 @@ public class NullCollectionsAndIsEmpty extends QueryTest {
     /** */
     public void testPositive() {
         // isEmpty
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -92,7 +93,7 @@ public class NullCollectionsAndIsEmpty extends QueryTest {
         addTearDownClass(CompanyModelReader.getTearDownClasses());
         loadAndPersistCompanyModel(getPM());
         getPM().currentTransaction().begin();
-        Employee emp1 = (Employee) getPersistentCompanyModelInstance("emp1");
+        Employee emp1 = getPersistentCompanyModelInstance(Employee.class, "emp1");
         emp1.setProjects(null);
         getPM().currentTransaction().commit();
     }
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java
index 9229106e..754f8e56 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java
@@ -74,7 +74,7 @@ public class OrderingSpecification extends QueryTest {
     /** */
     public void testPositiveCompanyQueries0() {
         // nulls first
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<DentalInsurance> expected = getTransientCompanyModelInstancesAsList(DentalInsurance.class,
                 "dentalIns99", "dentalIns1", "dentalIns2", "dentalIns3", "dentalIns4", "dentalIns5");
 
         JDOQLTypedQuery<DentalInsurance> query = getPM().newJDOQLTypedQuery(DentalInsurance.class);
@@ -106,7 +106,7 @@ public class OrderingSpecification extends QueryTest {
     /** */
     public void testPositiveCompanyQueries1() {
         // nulls last
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<DentalInsurance> expected = getTransientCompanyModelInstancesAsList(DentalInsurance.class,
                 "dentalIns1", "dentalIns2", "dentalIns3", "dentalIns4", "dentalIns5", "dentalIns99");
 
         JDOQLTypedQuery<DentalInsurance> query = getPM().newJDOQLTypedQuery(DentalInsurance.class);
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/PositiveRange.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/PositiveRange.java
index ea197c48..b357240f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/PositiveRange.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/PositiveRange.java
@@ -25,6 +25,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Positive Range.
@@ -52,7 +53,7 @@ public class PositiveRange extends QueryTest {
     }
 
     public void testPositive0() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -82,7 +83,7 @@ public class PositiveRange extends QueryTest {
     }
 
     public void testPositive1() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -112,7 +113,7 @@ public class PositiveRange extends QueryTest {
     }
 
     public void testPositive2() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -142,7 +143,7 @@ public class PositiveRange extends QueryTest {
     }
 
     public void testPositive3() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp2", "emp3", "emp4");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp2", "emp3", "emp4");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/RangeAsString.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/RangeAsString.java
index 4eb792e2..8088f22f 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/RangeAsString.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/RangeAsString.java
@@ -25,6 +25,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Range as String.
@@ -53,7 +54,7 @@ public class RangeAsString extends QueryTest {
 
     /** */
     public void testPositive0() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -83,7 +84,7 @@ public class RangeAsString extends QueryTest {
 
     }    /** */
     public void testPositive1() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -113,7 +114,7 @@ public class RangeAsString extends QueryTest {
 
     }    /** */
     public void testPositive2() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -143,7 +144,7 @@ public class RangeAsString extends QueryTest {
 
     }    /** */
     public void testPositive3() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp2", "emp3", "emp4");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/SeparateNamespaceForTypeNames.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/SeparateNamespaceForTypeNames.java
index 33faddf6..676a6224 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/SeparateNamespaceForTypeNames.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/SeparateNamespaceForTypeNames.java
@@ -29,6 +29,7 @@ import org.apache.jdo.tck.util.BatchTestRunner;
 import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.query.Expression;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -63,7 +64,7 @@ public class SeparateNamespaceForTypeNames extends QueryTest {
      *
      */
     public void testParameterName() {
-        Object expected = getTransientCompanyModelInstancesAsList(new String[]{"emp1", "emp2", "emp3"});
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -71,7 +72,7 @@ public class SeparateNamespaceForTypeNames extends QueryTest {
         query.filter(cand.department.eq(empParam));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("Department", getPersistentCompanyModelInstance("dept1"));
+        paramValues.put("Department", getPersistentCompanyModelInstance(Department.class, "dept1"));
 
         QueryElementHolder holder = new QueryElementHolder(
                 /*UNIQUE*/      null,
@@ -99,7 +100,7 @@ public class SeparateNamespaceForTypeNames extends QueryTest {
      * 
      */
     public void testVaiableName() {
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/StartsWithAndEndsWith.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/StartsWithAndEndsWith.java
index 8f390d5c..f9a49f3b 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/StartsWithAndEndsWith.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/StartsWithAndEndsWith.java
@@ -25,6 +25,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> StartsWith and EndsWith Query Operators
@@ -59,7 +60,7 @@ public class StartsWithAndEndsWith extends QueryTest {
     /** */
     public void testPositive0() {
         // startsWith
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -90,7 +91,7 @@ public class StartsWithAndEndsWith extends QueryTest {
     /** */
     public void testPositive1() {
         // endsWith
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java
index e9dd0582..809d2dda 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedCollectionMethods.java
@@ -29,6 +29,7 @@ import org.apache.jdo.tck.util.BatchTestRunner;
 import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.query.Expression;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -65,7 +66,7 @@ public class SupportedCollectionMethods extends QueryTest {
     /** */
     public void testContains() {
         // contains(VARIABLE)
-        Object expectedResult = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expectedResult = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -95,11 +96,11 @@ public class SupportedCollectionMethods extends QueryTest {
 
         // contains(PARAMETER)
 
-        expectedResult = getTransientCompanyModelInstancesAsList("dept1");
+        expectedResult = getTransientCompanyModelInstancesAsList(Department.class,"dept1");
 
         getPM().currentTransaction().begin();
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("e", getPersistentCompanyModelInstance("emp1"));
+        paramValues.put("e", getPersistentCompanyModelInstance(Employee.class, "emp1"));
         getPM().currentTransaction().commit();
 
         query = getPM().newJDOQLTypedQuery(Department.class);
@@ -133,7 +134,7 @@ public class SupportedCollectionMethods extends QueryTest {
     public void testIsEmpty() {
 
         // !isEmpty
-        Object expectedResult = getTransientCompanyModelInstancesAsList("dept1", "dept2");
+        List<Department> expectedResult = getTransientCompanyModelInstancesAsList(Department.class, "dept1", "dept2");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -161,7 +162,7 @@ public class SupportedCollectionMethods extends QueryTest {
         executeJDOQLTypedQuery(ASSERTION_FAILED, holder, expectedResult);
 
         // isEmpty
-        expectedResult = getTransientCompanyModelInstancesAsList(
+        List<Employee> expectedResult2 = getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp1", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Employee> query2 = getPM().newJDOQLTypedQuery(Employee.class);
@@ -185,15 +186,15 @@ public class SupportedCollectionMethods extends QueryTest {
                 /*JDOQLTyped*/  query2,
                 /*paramValues*/ null);
 
-        executeAPIQuery(ASSERTION_FAILED, holder, expectedResult);
-        executeSingleStringQuery(ASSERTION_FAILED, holder, expectedResult);
-        executeJDOQLTypedQuery(ASSERTION_FAILED, holder, expectedResult);
+        executeAPIQuery(ASSERTION_FAILED, holder, expectedResult2);
+        executeSingleStringQuery(ASSERTION_FAILED, holder, expectedResult2);
+        executeJDOQLTypedQuery(ASSERTION_FAILED, holder, expectedResult2);
     }
 
     /** */
     public void testSize() {
         // size
-        Object expectedResult = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expectedResult = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedDateMethods.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedDateMethods.java
index 1a2809bd..b7fbc221 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedDateMethods.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedDateMethods.java
@@ -25,6 +25,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Supported Date methods.
@@ -58,7 +59,7 @@ public class SupportedDateMethods extends QueryTest {
     
     /** */
     public void testGetDate() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -88,7 +89,7 @@ public class SupportedDateMethods extends QueryTest {
     
     /** */
     public void testGetMonth() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -118,7 +119,7 @@ public class SupportedDateMethods extends QueryTest {
 
     /** */
     public void testGetYear() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedListMethods.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedListMethods.java
index 0a478a2a..c1fa757e 100755
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedListMethods.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedListMethods.java
@@ -30,6 +30,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -64,7 +65,7 @@ public class SupportedListMethods extends QueryTest {
     /** */
     public void testGetInFilter() {
         // get(PARAMETER) in filter
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -75,7 +76,7 @@ public class SupportedListMethods extends QueryTest {
         getPM().currentTransaction().begin();
         Map<String, Object> paramValues = new HashMap<>();
         paramValues.put("pos", Integer.valueOf(1));
-        paramValues.put("room1", getPersistentCompanyModelInstance("room2"));
+        paramValues.put("room1", getPersistentCompanyModelInstance(MeetingRoom.class, "room2"));
         getPM().currentTransaction().commit();
 
         QueryElementHolder holder = new QueryElementHolder(
@@ -103,7 +104,7 @@ public class SupportedListMethods extends QueryTest {
     /** */
     public void testGetInResult() {
         // get(LITERAL) in result
-        Object expected = getTransientCompanyModelInstancesAsList("room2");
+        List<MeetingRoom> expected = getTransientCompanyModelInstancesAsList(MeetingRoom.class,"room2");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java
index 55d1c390..60be2e3d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedMapMethods.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.query.jdoql.methods;
 
 import java.util.Collections;
+import java.util.List;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Person;
@@ -62,7 +63,7 @@ public class SupportedMapMethods extends QueryTest {
     
     /** */
     public void testGet() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -92,7 +93,7 @@ public class SupportedMapMethods extends QueryTest {
     
     /** */
     public void testContainsKey() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -123,7 +124,7 @@ public class SupportedMapMethods extends QueryTest {
 
     /** */
     public void testContainsValue() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -183,7 +184,7 @@ public class SupportedMapMethods extends QueryTest {
 
     /** */
     public void testSize() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedStringMethods.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedStringMethods.java
index f4011ec9..1f7ac3df 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedStringMethods.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/methods/SupportedStringMethods.java
@@ -27,6 +27,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Supported String methods.
@@ -70,7 +71,7 @@ public class SupportedStringMethods extends QueryTest {
     
     /** */
     public void testToLowerCase() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,"emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -100,7 +101,7 @@ public class SupportedStringMethods extends QueryTest {
     
     /** */
     public void testToUpperCase() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -130,7 +131,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testIndexOfString() {
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -160,7 +161,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testIndexOfStringInt() {
-        Object expected = getTransientCompanyModelInstancesAsList("dept1");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -190,7 +191,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testMatches1() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -221,7 +222,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testMatches2() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -251,7 +252,7 @@ public class SupportedStringMethods extends QueryTest {
     }
     /** */
     public void testMatches3() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -281,7 +282,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testSubstringInt() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -312,7 +313,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testSubstringIntInt() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -343,7 +344,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testStartsWith() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -374,7 +375,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testEndsWith() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -405,7 +406,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testStartsWithIndexed() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -436,7 +437,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testLength() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
@@ -467,7 +468,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testCharAt() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -497,7 +498,7 @@ public class SupportedStringMethods extends QueryTest {
 
     /** */
     public void testTrim() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenDateFieldsAndParameters.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenDateFieldsAndParameters.java
index 63537bd7..e9f8e582 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenDateFieldsAndParameters.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenDateFieldsAndParameters.java
@@ -21,6 +21,7 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
@@ -85,7 +86,7 @@ public class EqualityAndComparisonsBetweenDateFieldsAndParameters
      *
      */
     public void testFieldEqualsParameter() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -122,7 +123,8 @@ public class EqualityAndComparisonsBetweenDateFieldsAndParameters
      *
      */
     public void testFieldGEParameter() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3", "emp4");
+        List<Employee> expected =
+                getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3", "emp4");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -159,7 +161,7 @@ public class EqualityAndComparisonsBetweenDateFieldsAndParameters
      *
      */
     public void testParameterLTField() {
-        Object expected = getTransientCompanyModelInstancesAsList();
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class);
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java
index 89767c62..8f8817f2 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/EqualityAndComparisonsBetweenStringFieldsAndParameters.java
@@ -27,6 +27,7 @@ import org.apache.jdo.tck.util.BatchTestRunner;
 import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.query.StringExpression;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -59,7 +60,7 @@ public class EqualityAndComparisonsBetweenStringFieldsAndParameters
     }
     
     public void testStringFieldEqualsStringParameter() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -92,7 +93,8 @@ public class EqualityAndComparisonsBetweenStringFieldsAndParameters
     }
 
     public void testStringFieldGEStringParameter() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3", "emp4", "emp5");
+        List<Employee> expected =
+                getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -125,7 +127,7 @@ public class EqualityAndComparisonsBetweenStringFieldsAndParameters
     }
 
     public void testStringParameterLTStringField() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp3", "emp4", "emp5");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java
index 9077d42a..5e8005de 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/Instanceof.java
@@ -26,6 +26,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Instanceof operator.
@@ -53,7 +54,7 @@ public class Instanceof extends QueryTest {
     }
 
     public void testPositive1() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp2", "emp3");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2", "emp3");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -83,7 +84,7 @@ public class Instanceof extends QueryTest {
     }
 
     public void testPositive2() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp2", "emp3");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2", "emp3");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java
index eccc2a34..d670ccd8 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/Modulo.java
@@ -24,6 +24,7 @@ import javax.jdo.PersistenceManager;
 import javax.jdo.Transaction;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.pc.company.QPerson;
 import org.apache.jdo.tck.pc.mylib.PrimitiveTypes;
@@ -57,7 +58,7 @@ public class Modulo extends QueryTest {
     }
 
     public void testPositive() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp2", "emp4");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp2", "emp4");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/StringConcatenation.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/StringConcatenation.java
index d892afac..26f47e7e 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/StringConcatenation.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/operators/StringConcatenation.java
@@ -27,6 +27,7 @@ import org.apache.jdo.tck.util.BatchTestRunner;
 import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.query.StringExpression;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -61,7 +62,7 @@ public class StringConcatenation extends QueryTest {
      *
      */
     public void testStringLiteralPlusStringLiteral() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -90,7 +91,7 @@ public class StringConcatenation extends QueryTest {
     }
 
     public void testStringFieldPlusStringLiteral() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/DomainObjectsAsParameters.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/DomainObjectsAsParameters.java
index 75c6ba31..3e9fcb12 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/DomainObjectsAsParameters.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/DomainObjectsAsParameters.java
@@ -70,13 +70,14 @@ public class DomainObjectsAsParameters extends QueryTest {
 
             String filter = "this.department == d";
             Collection<Employee> expectedResult = new ArrayList<>();
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp1"));
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp2"));
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp3"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp1"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp2"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp3"));
             Query<Employee> q =  pm.newQuery(Employee.class);
             q.declareParameters("org.apache.jdo.tck.pc.company.Department d");
             q.setFilter(filter);
-            Collection<Employee> results = (Collection<Employee>)q.execute(getPersistentCompanyModelInstance("dept1"));
+            Collection<Employee> results =
+                    (Collection<Employee>)q.execute(getPersistentCompanyModelInstance(Department.class, "dept1"));
             checkQueryResultWithoutOrder(ASSERTION_FAILED, filter, results, expectedResult);
             
             tx.commit();
@@ -128,12 +129,13 @@ public class DomainObjectsAsParameters extends QueryTest {
 
             String filter = "this.department != d";
             Collection<Employee> expectedResult = new ArrayList<>();
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp4"));
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp5"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp4"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp5"));
             Query<Employee> q =  pm.newQuery(Employee.class);
             q.declareParameters("org.apache.jdo.tck.pc.company.Department d");
             q.setFilter(filter);
-            Collection<Employee> results = (Collection<Employee>)q.execute(getPersistentCompanyModelInstance("dept1"));
+            Collection<Employee> results =
+                    (Collection<Employee>)q.execute(getPersistentCompanyModelInstance(Department.class, "dept1"));
             checkQueryResultWithoutOrder(ASSERTION_FAILED, filter, results, expectedResult);
             
             tx.commit();
@@ -157,13 +159,14 @@ public class DomainObjectsAsParameters extends QueryTest {
 
             String filter = "this.department == e.department";
             Collection<Employee> expectedResult = new ArrayList<>();
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp1"));
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp2"));
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp3"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp1"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp2"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp3"));
             Query<Employee> q =  pm.newQuery(Employee.class);
             q.declareParameters("org.apache.jdo.tck.pc.company.Employee e");
             q.setFilter(filter);
-            Collection<Employee> results = (Collection<Employee>)q.execute(getPersistentCompanyModelInstance("emp1"));
+            Collection<Employee> results = (
+                    Collection<Employee>)q.execute(getPersistentCompanyModelInstance(Employee.class, "emp1"));
             checkQueryResultWithoutOrder(ASSERTION_FAILED, filter, results, expectedResult);
             
             tx.commit();
@@ -187,12 +190,12 @@ public class DomainObjectsAsParameters extends QueryTest {
 
             String filter = "this.salary > e.salary";
             Collection<Employee> expectedResult = new ArrayList<>();
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp5"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp5"));
             Query<FullTimeEmployee> q =  pm.newQuery(FullTimeEmployee.class);
             q.declareParameters("org.apache.jdo.tck.pc.company.FullTimeEmployee e");
             q.setFilter(filter);
             Collection<FullTimeEmployee> results =
-                    (Collection<FullTimeEmployee>)q.execute(getPersistentCompanyModelInstance("emp1"));
+                    (Collection<FullTimeEmployee>)q.execute(getPersistentCompanyModelInstance(Employee.class,  "emp1"));
             checkQueryResultWithoutOrder(ASSERTION_FAILED, filter, results, expectedResult);
 
             tx.commit();
@@ -214,13 +217,13 @@ public class DomainObjectsAsParameters extends QueryTest {
         try {
             tx.begin();
 
-            FullTimeEmployee emp1 = (FullTimeEmployee)getPersistentCompanyModelInstance("emp1");
+            FullTimeEmployee emp1 = getPersistentCompanyModelInstance(FullTimeEmployee.class, "emp1");
             emp1.setSalary(5000d);
 
             String filter = "this.salary > e.salary";
             Collection<Employee> expectedResult = new ArrayList<>();
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp2"));
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp5"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp2"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp5"));
             Query<FullTimeEmployee> q =  pm.newQuery(FullTimeEmployee.class);
             q.declareParameters("org.apache.jdo.tck.pc.company.FullTimeEmployee e");
             q.setFilter(filter);
@@ -247,12 +250,12 @@ public class DomainObjectsAsParameters extends QueryTest {
 
             String filter = "this.employees.contains(e)";
             Collection<Department> expectedResult = new ArrayList<>();
-            expectedResult.add((Department)getPersistentCompanyModelInstance("dept1"));
+            expectedResult.add(getPersistentCompanyModelInstance(Department.class, "dept1"));
             Query<Department> q =  pm.newQuery(Department.class);
             q.declareParameters("org.apache.jdo.tck.pc.company.Employee e");
             q.setFilter(filter);
             Collection<Department> results =
-                    (Collection<Department>)q.execute(getPersistentCompanyModelInstance("emp1"));
+                    (Collection<Department>)q.execute(getPersistentCompanyModelInstance(Employee.class, "emp1"));
             checkQueryResultWithoutOrder(ASSERTION_FAILED, filter, results, expectedResult);
 
             tx.commit();
@@ -275,12 +278,12 @@ public class DomainObjectsAsParameters extends QueryTest {
 
             String filter = "this.employees.contains(ins.employee)";
             Collection<Department> expectedResult = new ArrayList<>();
-            expectedResult.add((Department)getPersistentCompanyModelInstance("dept1"));
+            expectedResult.add((Department)getPersistentCompanyModelInstance(Department.class, "dept1"));
             Query<Department> q =  pm.newQuery(Department.class);
             q.declareParameters("org.apache.jdo.tck.pc.company.Insurance ins");
             q.setFilter(filter);
             Collection<Department> results =
-                    (Collection<Department>)q.execute(getPersistentCompanyModelInstance("medicalIns1"));
+                    (Collection<Department>)q.execute(getPersistentCompanyModelInstance(MedicalInsurance.class, "medicalIns1"));
             checkQueryResultWithoutOrder(ASSERTION_FAILED, filter, results, expectedResult);
             
             tx.commit();
@@ -303,16 +306,16 @@ public class DomainObjectsAsParameters extends QueryTest {
 
             String filter = "insurances.contains(this.medicalInsurance)";
             Collection<Employee> expectedResult = new ArrayList<>();
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp1"));
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp3"));
-            expectedResult.add((Employee)getPersistentCompanyModelInstance("emp4"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp1"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp3"));
+            expectedResult.add(getPersistentCompanyModelInstance(Employee.class, "emp4"));
             Query<Employee> q =  pm.newQuery(Employee.class);
             q.declareParameters("java.util.Collection insurances");
             q.setFilter(filter);
             Collection<MedicalInsurance> parameters = new ArrayList<>();
-            parameters.add((MedicalInsurance)getPersistentCompanyModelInstance("medicalIns1"));
-            parameters.add((MedicalInsurance)getPersistentCompanyModelInstance("medicalIns3"));
-            parameters.add((MedicalInsurance)getPersistentCompanyModelInstance("medicalIns4"));
+            parameters.add(getPersistentCompanyModelInstance(MedicalInsurance.class, "medicalIns1"));
+            parameters.add(getPersistentCompanyModelInstance(MedicalInsurance.class, "medicalIns3"));
+            parameters.add(getPersistentCompanyModelInstance(MedicalInsurance.class, "medicalIns4"));
             Collection<Employee> results = (Collection<Employee>)q.execute(parameters);
             checkQueryResultWithoutOrder(ASSERTION_FAILED, filter, results, expectedResult);
             
@@ -337,7 +340,7 @@ public class DomainObjectsAsParameters extends QueryTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            Department dept1 = (Department) getPersistentCompanyModelInstance("dept1");
+            Department dept1 = getPersistentCompanyModelInstance(Department.class, "dept1");
             Department dept1Copy = new Department (9999, dept1.getName(), dept1.getCompany(), dept1.getEmployeeOfTheMonth());
             pm.makePersistent(dept1Copy);
             oidDept1Copy = pm.getObjectId(dept1Copy);
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/ImplicitParameters.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/ImplicitParameters.java
index 3a7e6b4a..47a4ad44 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/ImplicitParameters.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/ImplicitParameters.java
@@ -62,7 +62,7 @@ public class ImplicitParameters extends QueryTest {
     /** */
     public void testResult() {
         Object expected = getExpectedResultOfFirstQuery(
-                getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3", "emp4", "emp5"));
+                getTransientCompanyModelInstancesAsList(Person.class, "emp1", "emp2", "emp3", "emp4", "emp5"));
 
         Map<String, Object> paramValues = new HashMap<>();
         paramValues.put("param", PARAMETER);
@@ -91,7 +91,7 @@ public class ImplicitParameters extends QueryTest {
     
     /** */
     public void testFilter() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
 
         Map<String, Object> paramValues = new HashMap<>();
         paramValues.put("param", "emp1First");
@@ -151,7 +151,7 @@ public class ImplicitParameters extends QueryTest {
     
     /** */
     public void testRange() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         Map<String, Object> paramValues = new HashMap<>();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/OrderOfParameters.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/OrderOfParameters.java
index 3eb3de49..b99a9d33 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/OrderOfParameters.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/OrderOfParameters.java
@@ -64,7 +64,7 @@ public class OrderOfParameters extends QueryTest {
                     "select from org.apache.jdo.tck.pc.company.Person where firstname == :param1 & lastname == :param2";
             query = pm.newQuery(Person.class, "firstname == :param1 & lastname == :param2");
             result = query.execute("emp1First", "emp1Last");
-            List<Person> expected = getTransientCompanyModelInstancesAsList("emp1");
+            List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
             checkQueryResultWithoutOrder(ASSERTION_FAILED, singleStringQuery, result, expected);
             tx.commit();
         } finally {
@@ -89,7 +89,7 @@ public class OrderOfParameters extends QueryTest {
                     "select from org.apache.jdo.tck.pc.company.Person where firstname == :param1 & lastname == :param2";
             query = pm.newQuery(singleStringQuery);
             result = query.execute("emp1First", "emp1Last");
-            List<Person> expected = getTransientCompanyModelInstancesAsList("emp1");
+            List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1");
             checkQueryResultWithoutOrder(ASSERTION_FAILED, singleStringQuery, result, expected);
             tx.commit();
         } finally {
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterBoundToDifferentPM.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterBoundToDifferentPM.java
index dea4939c..c68d591c 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterBoundToDifferentPM.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/parameters/ParameterBoundToDifferentPM.java
@@ -58,7 +58,7 @@ public class ParameterBoundToDifferentPM extends QueryTest {
     public void testNegative() {
         // get parameter dept1
         getPM().currentTransaction().begin();
-        Department dept1 = (Department) getPersistentCompanyModelInstance("dept1");
+        Department dept1 = getPersistentCompanyModelInstance(Department.class, "dept1");
         getPM().currentTransaction().commit();
         
         // pass parameter dept1 to query of different pm
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/AggregateOnSize.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/AggregateOnSize.java
index ce4aa159..e8380be4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/AggregateOnSize.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/AggregateOnSize.java
@@ -55,7 +55,7 @@ public class AggregateOnSize extends SubqueriesTest {
     public void testMaxAndSizeInSubquery() {
         PersistenceManager pm = getPM();
 
-        List<IDepartment> expectedResult = getTransientCompanyModelInstancesAsList("dept1");
+        List<IDepartment> expectedResult = getTransientCompanyModelInstancesAsList(IDepartment.class, "dept1");
 
         // Select departments with the maximum number of employees
         String singleStringJDOQL = 
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueries.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueries.java
index ebf76409..86756123 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueries.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueries.java
@@ -74,7 +74,7 @@ public class CorrelatedSubqueries extends SubqueriesTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList(
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                     "emp1", "emp2", "emp4", "emp6", "emp7", "emp10");
 
             // API query
@@ -108,7 +108,7 @@ public class CorrelatedSubqueries extends SubqueriesTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList(
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                     "emp1", "emp2", "emp4", "emp6", "emp7", "emp10");
             // single String JDOQL
             try (Query<Employee> singleStringQuery = pm.newQuery(SINGLE_STRING_QUERY_COLLECTION_SUBQUERY)) {
@@ -130,7 +130,7 @@ public class CorrelatedSubqueries extends SubqueriesTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList(
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                     "emp1", "emp2", "emp4", "emp6", "emp7", "emp10");
             try (JDOQLTypedQuery<Employee> q = pm.newJDOQLTypedQuery(Employee.class)) {
                 QEmployee cand = QEmployee.candidate();
@@ -155,7 +155,7 @@ public class CorrelatedSubqueries extends SubqueriesTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList(
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                     "emp7", "emp8", "emp9", "emp10");
 
             // API query
@@ -188,7 +188,7 @@ public class CorrelatedSubqueries extends SubqueriesTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList(
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                     "emp7", "emp8", "emp9", "emp10");
             // single String JDOQL
             try (Query<Employee> singleStringQuery = pm.newQuery(SINGLE_STRING_QUERY_LIST_SUBQUERY)) {
@@ -210,7 +210,7 @@ public class CorrelatedSubqueries extends SubqueriesTest {
         Transaction tx = pm.currentTransaction();
         try {
             tx.begin();
-            List<Employee> expected = getTransientCompanyModelInstancesAsList(
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                     "emp7", "emp8", "emp9", "emp10");
             try (JDOQLTypedQuery<Employee> q = pm.newJDOQLTypedQuery(Employee.class)) {
                 QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueriesWithParameters.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueriesWithParameters.java
index 6ed16a74..974c168a 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueriesWithParameters.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueriesWithParameters.java
@@ -68,7 +68,7 @@ public class CorrelatedSubqueriesWithParameters extends SubqueriesTest {
      * Test subquery: 
      */
     void runTestSubqueries01(PersistenceManager pm) {
-        List<Employee> expectedResult = getTransientCompanyModelInstancesAsList(
+        List<Employee> expectedResult = getTransientCompanyModelInstancesAsList(Employee.class,
             "emp2", "emp6", "emp9");
         
         // Select employees who work more than the average of the employees 
@@ -104,7 +104,7 @@ public class CorrelatedSubqueriesWithParameters extends SubqueriesTest {
 
     /** */
     void runTestSubqueries02(PersistenceManager pm) {
-        List<Employee> expectedResult = getTransientCompanyModelInstancesAsList("emp2", "emp10");
+        List<Employee> expectedResult = getTransientCompanyModelInstancesAsList(Employee.class, "emp2", "emp10");
 
         // Select employees hired after a particular date who work more 
         // than the average of all employees of the same manager
@@ -142,7 +142,7 @@ public class CorrelatedSubqueriesWithParameters extends SubqueriesTest {
 
     /** */
     void runTestSubqueries03(PersistenceManager pm) {
-        List<Employee> expectedResult = getTransientCompanyModelInstancesAsList(
+        List<Employee> expectedResult = getTransientCompanyModelInstancesAsList(Employee.class,
             "emp2", "emp6", "emp9", "emp10");
 
         // Select employees who work more than the average of all 
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/MultipleCallsReplaceSubquery.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/MultipleCallsReplaceSubquery.java
index dc121308..3b38b473 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/MultipleCallsReplaceSubquery.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/MultipleCallsReplaceSubquery.java
@@ -56,7 +56,7 @@ public class MultipleCallsReplaceSubquery extends SubqueriesTest {
     /** */
     public void testPositive() {
         PersistenceManager pm = getPM();
-        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(
+        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(IEmployee.class,
             "emp1","emp2","emp4","emp5","emp6","emp7","emp10");
 
         // select employees who work more than the average of all employees
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NonCorrelatedSubqueries.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NonCorrelatedSubqueries.java
index 20cc3b4f..42ef43d4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NonCorrelatedSubqueries.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NonCorrelatedSubqueries.java
@@ -65,7 +65,7 @@ public class NonCorrelatedSubqueries extends SubqueriesTest {
 
     /** */
     void runTestSubqueries01(PersistenceManager pm) {
-        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(
+        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(IEmployee.class,
             "emp1","emp2","emp4","emp5","emp6","emp7","emp10");
 
         // select employees who work more than the average of all employees
@@ -97,7 +97,7 @@ public class NonCorrelatedSubqueries extends SubqueriesTest {
 
     /** */
     void runTestSubqueries02(PersistenceManager pm) {
-        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(
+        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(IEmployee.class,
             "emp2", "emp5", "emp10");
 
         // Select employees hired after a particular date who work more 
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NullCandidateCollectionExpression.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NullCandidateCollectionExpression.java
index 7b23b4c5..c963b4c4 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NullCandidateCollectionExpression.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NullCandidateCollectionExpression.java
@@ -59,7 +59,7 @@ public class NullCandidateCollectionExpression extends SubqueriesTest {
     public void testPositive() {
         PersistenceManager pm = getPM();
 
-        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(
+        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(IEmployee.class,
             "emp1","emp2","emp4","emp5","emp6","emp7","emp10");
 
         // select employees who work more than the average of all employees
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NullSubqueryParameter.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NullSubqueryParameter.java
index a3ae1341..68bb86d7 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NullSubqueryParameter.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/NullSubqueryParameter.java
@@ -57,7 +57,7 @@ public class NullSubqueryParameter extends SubqueriesTest {
     public void testPositive() {
         PersistenceManager pm = getPM();
 
-        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(
+        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(IEmployee.class,
             "emp1", "emp2", "emp4", "emp6", "emp7", "emp10");
 
         String singleStringJDOQL = 
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/UnmodifiedSubqueryInstance.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/UnmodifiedSubqueryInstance.java
index aef03bdd..dcb9c759 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/UnmodifiedSubqueryInstance.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/subqueries/UnmodifiedSubqueryInstance.java
@@ -67,7 +67,7 @@ public class UnmodifiedSubqueryInstance extends SubqueriesTest {
 
     /** */
     void runTestUnmodifiedSubquery(PersistenceManager pm) {
-        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(
+        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(IEmployee.class,
             "emp1","emp2","emp4","emp5","emp6","emp7","emp10");
         Double averageWeeklyHours = Double.valueOf(33.5);
 
@@ -99,7 +99,7 @@ public class UnmodifiedSubqueryInstance extends SubqueriesTest {
 
     /** */
     void runTestDifferentPM(PersistenceManager pm) {
-        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(
+        List<IEmployee> expectedResult = getTransientCompanyModelInstancesAsList(IEmployee.class,
             "emp1","emp2","emp4","emp5","emp6","emp7","emp10");
 
         // select employees who work more than the average of all employees
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/MixedVariables.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/MixedVariables.java
index 30c1dbb7..ed561d72 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/MixedVariables.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/MixedVariables.java
@@ -103,8 +103,8 @@ public class MixedVariables extends QueryTest {
      * The expected results of valid queries.
      */
     private final Object[] expectedResult = {
-        getTransientCompanyModelInstancesAsList("emp2"),
-        getTransientCompanyModelInstancesAsList("emp2")
+        getTransientCompanyModelInstancesAsList(Employee.class, "emp2"),
+        getTransientCompanyModelInstancesAsList(Employee.class, "emp2")
     };
             
     /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/UnconstrainedVariable.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/UnconstrainedVariable.java
index cfcf188b..1c9d4776 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/UnconstrainedVariable.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/UnconstrainedVariable.java
@@ -27,6 +27,7 @@ import org.apache.jdo.tck.util.BatchTestRunner;
 import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.query.NumericExpression;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -59,7 +60,7 @@ public class UnconstrainedVariable extends QueryTest {
     /** */
     public void testPositive() {
         if (isUnconstrainedVariablesSupported()) {
-            Object expected = getTransientCompanyModelInstancesAsList("emp2", "emp3", "emp4");
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2", "emp3", "emp4");
 
             JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
             QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/VariablesAndFields.java b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/VariablesAndFields.java
index b5a6c70e..759f088d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/VariablesAndFields.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/jdoql/variables/VariablesAndFields.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.query.jdoql.variables;
 
 import java.util.LinkedList;
+import java.util.List;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Employee;
@@ -66,7 +67,7 @@ public class VariablesAndFields extends QueryTest {
 
     /** */
     public void testPositive0() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp2");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -97,7 +98,7 @@ public class VariablesAndFields extends QueryTest {
 
     /** */
     public void testPositive1() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp2");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -128,7 +129,7 @@ public class VariablesAndFields extends QueryTest {
 
     /** */
     public void testPositive2() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -158,7 +159,7 @@ public class VariablesAndFields extends QueryTest {
 
     /** */
     public void testPositive3() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp2");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -218,7 +219,7 @@ public class VariablesAndFields extends QueryTest {
     }
     /** */
     public void testPositive5() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp2");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/DefaultResult.java b/tck/src/main/java/org/apache/jdo/tck/query/result/DefaultResult.java
index a6ae7fd4..b0755fe1 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/DefaultResult.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/DefaultResult.java
@@ -24,6 +24,7 @@ import org.apache.jdo.tck.query.QueryTest;
 import org.apache.jdo.tck.util.BatchTestRunner;
 
 import javax.jdo.JDOQLTypedQuery;
+import java.util.List;
 
 /**
  *<B>Title:</B> Default Result.
@@ -52,7 +53,7 @@ public class DefaultResult extends QueryTest {
     
     /** */
     public void testPositive() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/DefaultUnique.java b/tck/src/main/java/org/apache/jdo/tck/query/result/DefaultUnique.java
index 3f5f0224..f8a889dd 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/DefaultUnique.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/DefaultUnique.java
@@ -19,6 +19,7 @@ package org.apache.jdo.tck.query.result;
 
 import java.math.BigDecimal;
 import java.util.Arrays;
+import java.util.List;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.DentalInsurance;
@@ -60,7 +61,7 @@ public class DefaultUnique extends QueryTest {
 
     /** */
     public void testThis() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/DistinctCandidateInstances.java b/tck/src/main/java/org/apache/jdo/tck/query/result/DistinctCandidateInstances.java
index 1c70e715..a99e8fc7 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/DistinctCandidateInstances.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/DistinctCandidateInstances.java
@@ -62,7 +62,7 @@ public class DistinctCandidateInstances extends QueryTest {
     /** */
     public void testExtentQueries0() {
         if (isUnconstrainedVariablesSupported()) {
-            Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp1");
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1", "emp1");
 
             JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
             query.variable("p", Person.class);
@@ -93,7 +93,7 @@ public class DistinctCandidateInstances extends QueryTest {
     /** */
     public void testExtentQueries1() {
         if (isUnconstrainedVariablesSupported()) {
-            Object expected = getTransientCompanyModelInstancesAsList("emp1");
+            List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class,"emp1");
 
             JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
             QEmployee cand = QEmployee.candidate();
@@ -129,19 +129,19 @@ public class DistinctCandidateInstances extends QueryTest {
         String singleStringDistinctQuery = 
             "SELECT DISTINCT FROM " + Person.class.getName();
         
-        List<Person> candidates = getPersistentCompanyModelInstancesAsList("emp1", "emp1");
+        List<Person> candidates = getPersistentCompanyModelInstancesAsList(Person.class, "emp1", "emp1");
         Query<Person> query = pm.newQuery();
         query.setClass(Person.class);
         query.setCandidates(candidates);
         query.setResult("this");
         executeJDOQuery(ASSERTION_FAILED, query, singleStringQuery, 
                 false, null,
-                getTransientCompanyModelInstancesAsList("emp1", "emp1"), true);
+                getTransientCompanyModelInstancesAsList(Person.class, "emp1", "emp1"), true);
         
         query.setResult("DISTINCT this");
         executeJDOQuery(ASSERTION_FAILED, query, singleStringDistinctQuery, 
                 false, null,
-                getTransientCompanyModelInstancesAsList("emp1"), true);
+                getTransientCompanyModelInstancesAsList(Person.class,"emp1"), true);
     }
 
     /**
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/DistinctQuery.java b/tck/src/main/java/org/apache/jdo/tck/query/result/DistinctQuery.java
index 262fc7c6..5473b7b5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/DistinctQuery.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/DistinctQuery.java
@@ -18,8 +18,10 @@
 package org.apache.jdo.tck.query.result;
 
 import java.util.Arrays;
+import java.util.List;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Department;
 import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.QEmployee;
 import org.apache.jdo.tck.query.QueryElementHolder;
@@ -57,7 +59,7 @@ public class DistinctQuery extends QueryTest {
     
     /** */
     public void testPositive0() {
-        Object expected = getTransientCompanyModelInstancesAsList(
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class,
                 "dept1", "dept1", "dept1", "dept2", "dept2");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
@@ -88,7 +90,7 @@ public class DistinctQuery extends QueryTest {
 
     /** */
     public void testPositive1() {
-        Object expected = getTransientCompanyModelInstancesAsList("dept1", "dept2");
+        List<Department> expected = getTransientCompanyModelInstancesAsList(Department.class, "dept1", "dept2");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/Grouping.java b/tck/src/main/java/org/apache/jdo/tck/query/result/Grouping.java
index cf70885f..0eebae34 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/Grouping.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/Grouping.java
@@ -20,6 +20,7 @@ package org.apache.jdo.tck.query.result;
 import java.util.Arrays;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Department;
 import org.apache.jdo.tck.pc.company.FullTimeEmployee;
 import org.apache.jdo.tck.pc.company.QFullTimeEmployee;
 import org.apache.jdo.tck.query.QueryElementHolder;
@@ -82,8 +83,8 @@ public class Grouping extends QueryTest {
     /** */
     public void testPositive() {
         Object expected = Arrays.asList(new Object[] {
-                new Object[] {getTransientCompanyModelInstance("dept1"), Double.valueOf(30000.0)},
-                new Object[] {getTransientCompanyModelInstance("dept2"), Double.valueOf(45000.0)}});
+                new Object[] {getTransientCompanyModelInstance(Department.class, "dept1"), Double.valueOf(30000.0)},
+                new Object[] {getTransientCompanyModelInstance(Department.class, "dept2"), Double.valueOf(45000.0)}});
 
         JDOQLTypedQuery<FullTimeEmployee> query = getPM().newJDOQLTypedQuery(FullTimeEmployee.class);
         QFullTimeEmployee cand = QFullTimeEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/NullResults.java b/tck/src/main/java/org/apache/jdo/tck/query/result/NullResults.java
index 78f4d774..f3930731 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/NullResults.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/NullResults.java
@@ -18,6 +18,7 @@
 package org.apache.jdo.tck.query.result;
 
 import java.util.Arrays;
+import java.util.List;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Employee;
@@ -118,7 +119,7 @@ public class NullResults extends QueryTest {
 
     /** */
     public void testDistinctNavigation() {
-        Object expected = getTransientCompanyModelInstancesAsList(new String[]{"emp2", null});
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp2", null);
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/ResultExpressions.java b/tck/src/main/java/org/apache/jdo/tck/query/result/ResultExpressions.java
index fb4feb73..381e7ce2 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/ResultExpressions.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/ResultExpressions.java
@@ -19,6 +19,7 @@ package org.apache.jdo.tck.query.result;
 
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
@@ -134,7 +135,7 @@ public class ResultExpressions extends QueryTest {
     
     /** */
     public void testThis() {
-        Object expectedResult = getTransientCompanyModelInstancesAsList(
+        List<Employee> expectedResult = getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
@@ -228,7 +229,7 @@ public class ResultExpressions extends QueryTest {
 
     /** */
     public void testVariable() {
-        Object expectedResult = getTransientCompanyModelInstancesAsList("proj1");
+        List<Project> expectedResult = getTransientCompanyModelInstancesAsList(Project.class, "proj1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -558,7 +559,7 @@ public class ResultExpressions extends QueryTest {
         query.filter(cand.personid.eq(1l).and(p.projid.eq(cand.personid)));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("p", getPersistentCompanyModelInstance("proj1"));
+        paramValues.put("p", getPersistentCompanyModelInstance(Project.class, "proj1"));
 
         QueryElementHolder holder = new QueryElementHolder(
                 /*UNIQUE*/      null,
@@ -617,7 +618,7 @@ public class ResultExpressions extends QueryTest {
     /** */
     public void testParameter() {
         // parameter
-        Object expectedResult = getTransientCompanyModelInstancesAsList("proj1");
+        List<Project> expectedResult = getTransientCompanyModelInstancesAsList(Project.class, "proj1");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
@@ -627,7 +628,7 @@ public class ResultExpressions extends QueryTest {
         query.filter(cand.personid.eq(1l).and(cand.personid.eq(p.projid)));
 
         Map<String, Object> paramValues = new HashMap<>();
-        paramValues.put("p", getPersistentCompanyModelInstance("proj1"));
+        paramValues.put("p", getPersistentCompanyModelInstance(Project.class, "proj1"));
 
         QueryElementHolder holder = new QueryElementHolder(
                 /*UNIQUE*/      null,
@@ -654,7 +655,7 @@ public class ResultExpressions extends QueryTest {
     /** */
     public void testCast() {
         // cast
-        Object expectedResult = getTransientCompanyModelInstancesAsList("emp2");
+        List<Employee> expectedResult = getTransientCompanyModelInstancesAsList(Employee.class, "emp2");
 
         JDOQLTypedQuery<Employee> query = getPM().newJDOQLTypedQuery(Employee.class);
         QEmployee cand = QEmployee.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/ShapeOfResult.java b/tck/src/main/java/org/apache/jdo/tck/query/result/ShapeOfResult.java
index c95a1917..e44a63d9 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/ShapeOfResult.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/ShapeOfResult.java
@@ -18,8 +18,10 @@
 package org.apache.jdo.tck.query.result;
 
 import java.util.Arrays;
+import java.util.List;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.pc.company.QPerson;
 import org.apache.jdo.tck.query.QueryElementHolder;
@@ -57,7 +59,7 @@ public class ShapeOfResult extends QueryTest {
     /** */
     public void testNoResult() {
         // result: null
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3", "emp4", "emp5");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
 
@@ -86,7 +88,7 @@ public class ShapeOfResult extends QueryTest {
     /** */
     public void testThisAsC() {
         // result: this AS C
-        Object expected = getTransientCompanyModelInstancesAsList("emp1", "emp2", "emp3", "emp4", "emp5");
+        List<Person> expected = getTransientCompanyModelInstancesAsList(Person.class, "emp1", "emp2", "emp3", "emp4", "emp5");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -117,7 +119,7 @@ public class ShapeOfResult extends QueryTest {
     /** */
     public void testNoResultUnique() {
         // result: null, unique: true
-        Object expected = getTransientCompanyModelInstance("emp1");
+        Object expected = getTransientCompanyModelInstance(Employee.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -148,7 +150,7 @@ public class ShapeOfResult extends QueryTest {
     /** */
     public void testThisAsCUnique() {
         // result: this AS C, unique: true
-        Object expected = getTransientCompanyModelInstance("emp1");
+        Object expected = getTransientCompanyModelInstance(Employee.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/Unique.java b/tck/src/main/java/org/apache/jdo/tck/query/result/Unique.java
index 0e5bd05e..b2f77fb9 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/Unique.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/Unique.java
@@ -21,6 +21,7 @@ import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.Query;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.pc.company.QPerson;
 import org.apache.jdo.tck.query.QueryElementHolder;
@@ -60,7 +61,7 @@ public class Unique extends QueryTest {
     
     /** */
     public void testPositive0() {
-        Object expected = getTransientCompanyModelInstance("emp1");
+        Object expected = getTransientCompanyModelInstance(Employee.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
@@ -120,7 +121,7 @@ public class Unique extends QueryTest {
 
     /** */
     public void testPositive2() {
-        Object expected = getTransientCompanyModelInstance("emp1");
+        Object expected = getTransientCompanyModelInstance(Employee.class, "emp1");
 
         JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);
         QPerson cand = QPerson.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResult.java b/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResult.java
index 17c06e4a..36feec3e 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResult.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResult.java
@@ -18,10 +18,12 @@
 package org.apache.jdo.tck.query.result;
 
 import java.util.Arrays;
+import java.util.List;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Department;
 import org.apache.jdo.tck.pc.company.Employee;
+import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.pc.company.QDepartment;
 import org.apache.jdo.tck.pc.company.QEmployee;
 import org.apache.jdo.tck.pc.company.QProject;
@@ -70,7 +72,7 @@ public class VariableInResult extends QueryTest {
     
     /** */
     public void testDistinctNoNavigation() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1","emp2","emp3","emp4","emp5");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1","emp2","emp3","emp4","emp5");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -170,7 +172,7 @@ public class VariableInResult extends QueryTest {
 
     /** */
     public void testNoNavigation() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp1","emp2","emp3","emp4","emp5");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp1","emp2","emp3","emp4","emp5");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
@@ -202,7 +204,7 @@ public class VariableInResult extends QueryTest {
 
     /** */
     public void testMultipleProjectionWithConstraints() {
-        Object expected = getTransientCompanyModelInstancesAsList("emp4","emp5");
+        List<Employee> expected = getTransientCompanyModelInstancesAsList(Employee.class, "emp4","emp5");
 
         JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
         QDepartment cand = QDepartment.candidate();
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultMultipleNavigation.java b/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultMultipleNavigation.java
index f6ed6518..2cd2d4d6 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultMultipleNavigation.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultMultipleNavigation.java
@@ -21,6 +21,9 @@ import java.util.Arrays;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Company;
+import org.apache.jdo.tck.pc.company.Department;
+import org.apache.jdo.tck.pc.company.Employee;
+import org.apache.jdo.tck.pc.company.Project;
 import org.apache.jdo.tck.pc.company.QCompany;
 import org.apache.jdo.tck.pc.company.QDepartment;
 import org.apache.jdo.tck.pc.company.QEmployee;
@@ -67,17 +70,17 @@ public class VariableInResultMultipleNavigation extends QueryTest {
     /** 
      * The expected results of valid queries.
      */
-    private final Object company1 = getTransientCompanyModelInstance("company1");
-    private final Object emp1 = getTransientCompanyModelInstance("emp1");
-    private final Object emp2 = getTransientCompanyModelInstance("emp2");
-    private final Object emp3 = getTransientCompanyModelInstance("emp3");
-    private final Object emp4 = getTransientCompanyModelInstance("emp4");
-    private final Object emp5 = getTransientCompanyModelInstance("emp5");
-    private final Object proj1 = getTransientCompanyModelInstance("proj1");
-    private final Object proj2 = getTransientCompanyModelInstance("proj2");
-    private final Object proj3 = getTransientCompanyModelInstance("proj3");
-    private final Object dept1 = getTransientCompanyModelInstance("dept1");
-    private final Object dept2 = getTransientCompanyModelInstance("dept2");
+    private final Object company1 = getTransientCompanyModelInstance(Company.class,"company1");
+    private final Object emp1 = getTransientCompanyModelInstance(Employee.class, "emp1");
+    private final Object emp2 = getTransientCompanyModelInstance(Employee.class, "emp2");
+    private final Object emp3 = getTransientCompanyModelInstance(Employee.class, "emp3");
+    private final Object emp4 = getTransientCompanyModelInstance(Employee.class, "emp4");
+    private final Object emp5 = getTransientCompanyModelInstance(Employee.class, "emp5");
+    private final Object proj1 = getTransientCompanyModelInstance(Project.class, "proj1");
+    private final Object proj2 = getTransientCompanyModelInstance(Project.class, "proj2");
+    private final Object proj3 = getTransientCompanyModelInstance(Project.class, "proj3");
+    private final Object dept1 = getTransientCompanyModelInstance(Department.class, "dept1");
+    private final Object dept2 = getTransientCompanyModelInstance(Department.class, "dept2");
 
     /**
      * The <code>main</code> is called when the class
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java b/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
index b671b3b2..21a56985 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
@@ -21,6 +21,8 @@ import java.util.Arrays;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Department;
+import org.apache.jdo.tck.pc.company.Employee;
+import org.apache.jdo.tck.pc.company.Project;
 import org.apache.jdo.tck.pc.company.QDepartment;
 import org.apache.jdo.tck.pc.company.QEmployee;
 import org.apache.jdo.tck.pc.company.QProject;
@@ -66,16 +68,16 @@ public class VariableInResultNavigation extends QueryTest {
     /** 
      * The expected results of valid queries.
      */
-    private final Object emp1 = getTransientCompanyModelInstance("emp1");
-    private final Object emp2 = getTransientCompanyModelInstance("emp2");
-    private final Object emp3 = getTransientCompanyModelInstance("emp3");
-    private final Object emp4 = getTransientCompanyModelInstance("emp4");
-    private final Object emp5 = getTransientCompanyModelInstance("emp5");
-    private final Object proj1 = getTransientCompanyModelInstance("proj1");
-    private final Object proj2 = getTransientCompanyModelInstance("proj2");
-    private final Object proj3 = getTransientCompanyModelInstance("proj3");
-    private final Object dept1 = getTransientCompanyModelInstance("dept1");
-    private final Object dept2 = getTransientCompanyModelInstance("dept2");
+    private final Object emp1 = getTransientCompanyModelInstance(Employee.class, "emp1");
+    private final Object emp2 = getTransientCompanyModelInstance(Employee.class, "emp2");
+    private final Object emp3 = getTransientCompanyModelInstance(Employee.class, "emp3");
+    private final Object emp4 = getTransientCompanyModelInstance(Employee.class, "emp4");
+    private final Object emp5 = getTransientCompanyModelInstance(Employee.class, "emp5");
+    private final Object proj1 = getTransientCompanyModelInstance(Project.class, "proj1");
+    private final Object proj2 = getTransientCompanyModelInstance(Project.class, "proj2");
+    private final Object proj3 = getTransientCompanyModelInstance(Project.class, "proj3");
+    private final Object dept1 = getTransientCompanyModelInstance(Department.class, "dept1");
+    private final Object dept2 = getTransientCompanyModelInstance(Department.class, "dept2");
 
     /**
      * The <code>main</code> is called when the class
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/sql/AllowedAPIMethods.java b/tck/src/main/java/org/apache/jdo/tck/query/sql/AllowedAPIMethods.java
index 9965c96e..26127fc5 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/sql/AllowedAPIMethods.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/sql/AllowedAPIMethods.java
@@ -25,6 +25,7 @@ import javax.jdo.Query;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
 import org.apache.jdo.tck.pc.company.Department;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.pc.mylib.MylibReader;
 import org.apache.jdo.tck.pc.mylib.PrimitiveTypes;
@@ -77,8 +78,8 @@ public class AllowedAPIMethods extends QueryTest {
                 "primitiveTypesPositive", 
                 "primitiveTypesNegative",
                 "primitiveTypesCharacterStringLiterals"),
-        getTransientCompanyModelInstancesAsList("dept1", "dept2"),
-        getTransientCompanyModelInstancesAsList(
+        getTransientCompanyModelInstancesAsList(Department.class, "dept1", "dept2"),
+        getTransientCompanyModelInstancesAsList(Employee.class,
                 "emp1", "emp2", "emp3", "emp4", "emp5"),
         new Object[]{"emp1First", "emp1Last"},
         Arrays.asList(
diff --git a/tck/src/main/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java b/tck/src/main/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java
index c18cc246..ee5de82d 100644
--- a/tck/src/main/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java
+++ b/tck/src/main/java/org/apache/jdo/tck/query/sql/ExecuteWithMap.java
@@ -21,6 +21,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
 import org.apache.jdo.tck.pc.company.Person;
 import org.apache.jdo.tck.pc.mylib.MylibReader;
 import org.apache.jdo.tck.pc.mylib.PrimitiveTypes;
@@ -74,9 +75,9 @@ public class ExecuteWithMap extends QueryTest {
         getTransientMylibInstancesAsList(new String[]{
                 "primitiveTypesPositive", 
                 "primitiveTypesCharacterStringLiterals"}),
-        getTransientCompanyModelInstancesAsList(new String[]{"emp2"}),
-        getTransientCompanyModelInstancesAsList(new String[]{"emp2"}),
-        getTransientCompanyModelInstancesAsList(new String[]{"emp2"})
+        getTransientCompanyModelInstancesAsList(Employee.class, "emp2"),
+        getTransientCompanyModelInstancesAsList(Employee.class, "emp2"),
+        getTransientCompanyModelInstancesAsList(Employee.class, "emp2")
     };
 
     /**