You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ab...@apache.org on 2019/04/11 13:53:14 UTC
[cayenne] branch master updated: CAY-2563 Deprecate old scalarQuery
methods in SQLSelect
This is an automated email from the ASF dual-hosted git repository.
abulatski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new 933e42f CAY-2563 Deprecate old scalarQuery methods in SQLSelect
933e42f is described below
commit 933e42f40b3a09e074d5297fcd62d97add6efdca
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Thu Apr 11 16:49:16 2019 +0300
CAY-2563 Deprecate old scalarQuery methods in SQLSelect
---
RELEASE-NOTES.txt | 1 +
UPGRADE.txt | 3 ++
.../java/org/apache/cayenne/query/SQLSelect.java | 18 ++++++----
.../org/apache/cayenne/OneWayRelationshipsIT.java | 20 +++++------
.../java/org/apache/cayenne/query/SQLSelectIT.java | 39 ++++++++++++----------
5 files changed, 46 insertions(+), 35 deletions(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 22f05c8..357de43 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -28,6 +28,7 @@ CAY-2542 Modeler: redesign ObjRelationship editor dialog
CAY-2543 Move ResultSetMapping generation from metadata to translator
CAY-2549 Modeler: Redesign ObjAttribute editor dialog
CAY-2555 Use explicit ArcId in GraphChangeHandler methods
+CAY-2563 Deprecate old scalarQuery methods in SQLSelect
Bug Fixes:
diff --git a/UPGRADE.txt b/UPGRADE.txt
index 8e080ab..fb61f25 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -15,6 +15,9 @@ UPGRADING TO 4.2.M1
* Per CAY-2467 Property class is replaced with a type-aware Property API, it's mostly backwards compatible.
To take advantage of this new API you should regenerate code via Modeler ("Tools" -> "Generate Classes") or cgen tools.
+* Per CAY-2563 SQLSelect.scalarQuery(Class<T>, String) and SQLSelect.scalarQuery(Class<T>, String, String) methods
+ were deprecated.
+
UPGRADING TO 4.1.M3
* Per CAY-2514 SERVER_CONTEXTS_SYNC_PROPERTY default value was set to false.
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/SQLSelect.java b/cayenne-server/src/main/java/org/apache/cayenne/query/SQLSelect.java
index c276a78..f2538a4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/SQLSelect.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/SQLSelect.java
@@ -18,6 +18,13 @@
****************************************************************/
package org.apache.cayenne.query;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.DataRow;
import org.apache.cayenne.ObjectContext;
@@ -27,13 +34,6 @@ import org.apache.cayenne.ResultIteratorCallback;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.EntityResolver;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
/**
* A selecting query based on raw SQL and featuring fluent API.
*
@@ -93,7 +93,9 @@ public class SQLSelect<T> extends IndirectQuery implements Select<T> {
/**
* Creates a query that selects scalar values and uses default routing.
+ * @deprecated since 4.2. Use {@link #scalarQuery(String, Class<T>)} method.
*/
+ @Deprecated
public static <T> SQLSelect<T> scalarQuery(Class<T> type, String sql) {
return scalarQuery(sql, type);
}
@@ -101,7 +103,9 @@ public class SQLSelect<T> extends IndirectQuery implements Select<T> {
/**
* Creates a query that selects scalar values and uses routing based on the
* provided DataMap name.
+ * @deprecated since 4.2. Use {@link #scalarQuery(String, String, Class<T>)} method.
*/
+ @Deprecated
public static <T> SQLSelect<T> scalarQuery(Class<T> type, String dataMapName, String sql) {
SQLSelect<T> query = new SQLSelect<>(sql);
query.dataMapName = dataMapName;
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
index dd5fbc5..68e7007 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
@@ -18,6 +18,10 @@
****************************************************************/
package org.apache.cayenne;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.List;
+
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.query.SQLSelect;
import org.apache.cayenne.test.jdbc.DBHelper;
@@ -32,10 +36,6 @@ import org.apache.cayenne.unit.di.server.UseServerRuntime;
import org.junit.Before;
import org.junit.Test;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.util.List;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
@@ -157,8 +157,8 @@ public class OneWayRelationshipsIT extends ServerCase {
assertEquals(2, t3.getToManyOneWayDb().size());
- SQLSelect<Integer> fksQuery = SQLSelect.scalarQuery(Integer.class, "oneway-rels",
- "SELECT TABLE3_ID FROM oneway_table4");
+ SQLSelect<Integer> fksQuery = SQLSelect.scalarQuery("SELECT TABLE3_ID FROM oneway_table4",
+ "oneway-rels",Integer.class);
List<Integer> fks = context.select(fksQuery);
assertEquals(2, fks.size());
@@ -186,8 +186,8 @@ public class OneWayRelationshipsIT extends ServerCase {
assertEquals(2, t3.getToManyOneWayDb().size());
- SQLSelect<Integer> fksQuery = SQLSelect.scalarQuery(Integer.class, "oneway-rels",
- "SELECT TABLE3_ID FROM oneway_table4");
+ SQLSelect<Integer> fksQuery = SQLSelect.scalarQuery("SELECT TABLE3_ID FROM oneway_table4",
+ "oneway-rels", Integer.class);
List<Integer> fks = context.select(fksQuery);
assertEquals(2, fks.size());
@@ -216,8 +216,8 @@ public class OneWayRelationshipsIT extends ServerCase {
assertEquals(1, t3.getToManyOneWayDb().size());
- SQLSelect<Integer> fksQuery = SQLSelect.scalarQuery(Integer.class, "oneway-rels",
- "SELECT TABLE3_ID FROM oneway_table4");
+ SQLSelect<Integer> fksQuery = SQLSelect.scalarQuery("SELECT TABLE3_ID FROM oneway_table4",
+ "oneway-rels", Integer.class);
List<Integer> fks = context.select(fksQuery);
assertEquals(2, fks.size());
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
index 51dbc48..0f67474 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
@@ -18,6 +18,14 @@
****************************************************************/
package org.apache.cayenne.query;
+import java.sql.Date;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.DataRow;
import org.apache.cayenne.ResultBatchIterator;
@@ -35,14 +43,6 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
-import java.sql.Date;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.junit.Assert.*;
@@ -404,7 +404,8 @@ public class SQLSelectIT extends ServerCase {
createPaintingsDataSet();
long id = SQLSelect
- .scalarQuery(Integer.class, "SELECT PAINTING_ID FROM PAINTING WHERE PAINTING_TITLE = #bind($a)")
+ .scalarQuery( "SELECT PAINTING_ID FROM PAINTING WHERE PAINTING_TITLE = #bind($a)",
+ Integer.class)
.params("a", "painting3").selectOne(context);
assertEquals(3l, id);
@@ -414,8 +415,8 @@ public class SQLSelectIT extends ServerCase {
public void test_SelectLongArray() throws Exception {
createPaintingsDataSet();
- List<Integer> ids = SQLSelect.scalarQuery(Integer.class,
- "SELECT PAINTING_ID FROM PAINTING ORDER BY PAINTING_ID").select(context);
+ List<Integer> ids = SQLSelect.scalarQuery("SELECT PAINTING_ID FROM PAINTING ORDER BY PAINTING_ID",
+ Integer.class).select(context);
assertEquals(20, ids.size());
assertEquals(2l, ids.get(1).intValue());
@@ -435,7 +436,8 @@ public class SQLSelectIT extends ServerCase {
createPaintingsDataSet();
Integer id = SQLSelect
- .scalarQuery(Integer.class, "SELECT PAINTING_ID FROM PAINTING WHERE PAINTING_TITLE = #bind($a)")
+ .scalarQuery( "SELECT PAINTING_ID FROM PAINTING WHERE PAINTING_TITLE = #bind($a)",
+ Integer.class)
.paramsArray("painting3").selectOne(context);
assertEquals(3l, id.intValue());
@@ -446,8 +448,9 @@ public class SQLSelectIT extends ServerCase {
createPaintingsDataSet();
List<Integer> ids = SQLSelect
- .scalarQuery(Integer.class,
- "SELECT PAINTING_ID FROM PAINTING WHERE PAINTING_TITLE = #bind($a) OR PAINTING_TITLE = #bind($b) ORDER BY PAINTING_ID")
+ .scalarQuery("SELECT PAINTING_ID FROM PAINTING WHERE PAINTING_TITLE = #bind($a) " +
+ "OR PAINTING_TITLE = #bind($b) ORDER BY PAINTING_ID",
+ Integer.class)
.paramsArray("painting3", "painting2").select(context);
assertEquals(2l, ids.get(0).intValue());
@@ -463,10 +466,10 @@ public class SQLSelectIT extends ServerCase {
List<Integer> ids = SQLSelect
.scalarQuery(
- Integer.class,
"SELECT PAINTING_ID FROM PAINTING #chain('OR' 'WHERE') "
+ "#chunk($a) ESTIMATED_PRICE #bindEqual($a) #end "
- + "#chunk($b) PAINTING_TITLE #bindEqual($b) #end #end ORDER BY PAINTING_ID")
+ + "#chunk($b) PAINTING_TITLE #bindEqual($b) #end #end ORDER BY PAINTING_ID",
+ Integer.class)
.paramsArray(null, "painting1").select(context);
assertEquals(1, ids.size());
@@ -486,10 +489,10 @@ public class SQLSelectIT extends ServerCase {
List<Integer> ids = SQLSelect
.scalarQuery(
- Integer.class,
"SELECT PAINTING_ID FROM PAINTING #chain('OR' 'WHERE') "
+ "#chunk($a) ESTIMATED_PRICE #bindEqual($a) #end "
- + "#chunk($b) PAINTING_TITLE #bindEqual($b) #end #end ORDER BY PAINTING_ID")
+ + "#chunk($b) PAINTING_TITLE #bindEqual($b) #end #end ORDER BY PAINTING_ID",
+ Integer.class)
.params(params).select(context);
assertEquals(1, ids.size());