diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DatabaseQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DatabaseQuery.java index cb99a2f3b47..34310f60bb2 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DatabaseQuery.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DatabaseQuery.java @@ -1898,6 +1898,7 @@ public void copyFromQuery(DatabaseQuery query) { this.argumentTypeNames = query.argumentTypeNames; this.argumentValues = query.argumentValues; this.queryTimeout = query.queryTimeout; + this.queryTimeoutUnit = query.queryTimeoutUnit; this.redirector = query.redirector; this.sessionName = query.sessionName; this.shouldBindAllParameters = query.shouldBindAllParameters; diff --git a/jpa/eclipselink.jpa.testapps/jpa.test.composite.advanced/src/test/java/org/eclipse/persistence/testing/tests/jpa/composite/advanced/EntityManagerJUnitTest.java b/jpa/eclipselink.jpa.testapps/jpa.test.composite.advanced/src/test/java/org/eclipse/persistence/testing/tests/jpa/composite/advanced/EntityManagerJUnitTest.java index 7315997fd36..1c7d6bd69bf 100644 --- a/jpa/eclipselink.jpa.testapps/jpa.test.composite.advanced/src/test/java/org/eclipse/persistence/testing/tests/jpa/composite/advanced/EntityManagerJUnitTest.java +++ b/jpa/eclipselink.jpa.testapps/jpa.test.composite.advanced/src/test/java/org/eclipse/persistence/testing/tests/jpa/composite/advanced/EntityManagerJUnitTest.java @@ -266,6 +266,7 @@ public static TestSuite suite() { tests.add("testIncorrectBatchQueryHint"); // can't join different dbs tests.add("testFetchQueryHint"); tests.add("testBatchQueryHint"); + tests.add("testCopyFromQuery"); tests.add("testQueryHints"); tests.add("testParallelMultipleFactories"); tests.add("testMultipleFactories"); @@ -4981,6 +4982,16 @@ public void testParallelMultipleFactories() { } } + public void testCopyFromQuery() { + EntityManager em = (EntityManager)getEntityManagerFactory().createEntityManager().getDelegate(); + Query query = em.createQuery("SELECT OBJECT(e) FROM Employee e WHERE e.firstName = 'testCopyFromQuery'"); + query.setHint(QueryHints.QUERY_TIMEOUT_UNIT, "SECONDS"); + ObjectLevelReadQuery olrQuery = (ObjectLevelReadQuery)((JpaQuery)query).getDatabaseQuery(); + DataModifyQuery copyQuery = new DataModifyQuery(); + copyQuery.copyFromQuery(olrQuery); + assertEquals("QUERY_TIMEOUT_UNIT is not matching.", copyQuery.getQueryTimeoutUnit(), olrQuery.getQueryTimeoutUnit()); + } + // The class will be used to test QueryHints.RESULT_COLLECTION_TYPE public static class CustomerCollection extends HashSet { }