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/06/28 12:53:52 UTC

[cayenne] branch master updated (bccd538 -> 8d5f37c)

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

abulatski pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git.


    from bccd538  CAY-2579 Review and possibly relax usage of readonly flag of ObjRelationship
     new e617af6  CAY-2585 Rename scalarQuery and params methods in SQLSelect
     new 8d5f37c  Merge PR #387

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 RELEASE-NOTES.txt                                  |  1 +
 UPGRADE.txt                                        |  5 ++
 .../java/org/apache/cayenne/query/SQLSelect.java   | 73 +++++++++++++++++++++-
 .../java/org/apache/cayenne/query/SQLSelectIT.java | 36 +++++------
 4 files changed, 94 insertions(+), 21 deletions(-)


[cayenne] 02/02: Merge PR #387

Posted by ab...@apache.org.
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

commit 8d5f37cf1b73bcb7800dcf81b278b8a77a286201
Merge: bccd538 e617af6
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Fri Jun 28 15:52:15 2019 +0300

    Merge PR #387

 RELEASE-NOTES.txt                                  |  1 +
 UPGRADE.txt                                        |  5 ++
 .../java/org/apache/cayenne/query/SQLSelect.java   | 73 +++++++++++++++++++++-
 .../java/org/apache/cayenne/query/SQLSelectIT.java | 36 +++++------
 4 files changed, 94 insertions(+), 21 deletions(-)

diff --cc RELEASE-NOTES.txt
index 89bf59d,52d4875..6f45986
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@@ -34,7 -34,7 +34,8 @@@ CAY-2563 Deprecate old scalarQuery meth
  CAY-2568 Class Generation: Superclass Package setting persistence
  CAY-2569 Custom 'Naming Strategy' in Cayenne Modeler
  CAY-2570 Use MySQL adapter for latest versions of MariaDB
 +CAY-2579 Review and possibly relax usage of readonly flag of ObjRelationship
+ CAY-2585 Rename scalarQuery and params methods in SQLSelect
  
  Bug Fixes:
  


[cayenne] 01/02: CAY-2585 Rename scalarQuery and params methods in SQLSelect

Posted by ab...@apache.org.
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

commit e617af6c73c9d78f3e96687f453690db63552430
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Tue Jun 11 16:20:24 2019 +0300

    CAY-2585 Rename scalarQuery and params methods in SQLSelect
---
 RELEASE-NOTES.txt                                  |  1 +
 UPGRADE.txt                                        |  5 ++
 .../java/org/apache/cayenne/query/SQLSelect.java   | 73 +++++++++++++++++++++-
 .../java/org/apache/cayenne/query/SQLSelectIT.java | 36 +++++------
 4 files changed, 94 insertions(+), 21 deletions(-)

diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 38e5dd1..52d4875 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -34,6 +34,7 @@ CAY-2563 Deprecate old scalarQuery methods in SQLSelect
 CAY-2568 Class Generation: Superclass Package setting persistence
 CAY-2569 Custom 'Naming Strategy' in Cayenne Modeler
 CAY-2570 Use MySQL adapter for latest versions of MariaDB
+CAY-2585 Rename scalarQuery and params methods in SQLSelect
 
 Bug Fixes:
 
diff --git a/UPGRADE.txt b/UPGRADE.txt
index eb83462..81a87b7 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -18,6 +18,11 @@ UPGRADING TO 4.2.M1
 * Per CAY-2563 SQLSelect.scalarQuery(Class<T>, String) and SQLSelect.scalarQuery(Class<T>, String, String) methods
     were deprecated.
 
+* Per CAY-2585 SQLSelect.scalarQuery(String sql), SQLSelect.scalarQuery(String sql, String dataMapName),
+    SQLSelect.scalarQuery(String sql, Class<?> firstType, Class<?>... types),
+    SQLSelect.scalarQuery(String sql, String dataMapName, Class<?> firstType, Class<?>... types) and
+    SQLSelect.params(String name, Object value) 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 c61f3dd..96af190 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
@@ -137,17 +137,31 @@ public class SQLSelect<T> extends IndirectQuery implements Select<T> {
 	 * Creates query that selects scalar value and uses default routing
 	 *
 	 * @since 4.1
+	 * @deprecated since 4.2. Use {@link #arrayQuery(String)}
 	 */
+	@Deprecated
 	public static SQLSelect<Object[]> scalarQuery(String sql) {
 		SQLSelect<Object[]> query = new SQLSelect<>(sql);
 		return query.useScalar();
 	}
 
 	/**
+	 *  Creates query that selects scalar value and uses default routing
+	 *
+	 *  @since 4.2
+	 */
+	public static SQLSelect<Object[]> arrayQuery(String sql) {
+		SQLSelect<Object[]> query = new SQLSelect<>(sql);
+		return query.useScalar();
+	}
+
+	/**
 	 * Creates query that selects scalar values (as Object[]) and uses routing based on the
 	 * provided DataMap name.
 	 * @since 4.1
+	 * @deprecated since 4.2. Use {@link #arrayQuery(String, String)}
 	 */
+	@Deprecated
 	public static SQLSelect<Object[]> scalarQuery(String sql, String dataMapName) {
 		SQLSelect<Object[]> query = new SQLSelect<>(sql);
 		query.dataMapName = dataMapName;
@@ -155,22 +169,66 @@ public class SQLSelect<T> extends IndirectQuery implements Select<T> {
 	}
 
 	/**
+	 * Creates query that selects scalar values (as Object[]) and uses routing based on the
+	 * provided DataMap name.
+	 *
+	 * @since 4.2
+	 */
+	public static SQLSelect<Object[]> arrayQuery(String sql, String dataMapName) {
+		SQLSelect<Object[]> query = new SQLSelect<>(sql);
+		query.dataMapName = dataMapName;
+		return query.useScalar();
+	}
+
+	/**
 	 * Creates query that selects scalar values (as Object[]) and uses default routing
 	 *
 	 * @since 4.1
+	 * @deprecated since 4.2. Use {@link #arrayQuery(String, Class, Class...)}
 	 */
+	@Deprecated
 	public static SQLSelect<Object[]> scalarQuery(String sql, Class<?> firstType, Class<?>... types) {
 		SQLSelect<Object[]> query = new SQLSelect<>(sql);
 		return query.resultColumnsTypes(firstType).resultColumnsTypes(types).useScalar();
 	}
 
 	/**
+	 * Creates query that selects scalar values (as Object[]) and uses default routing
+	 *
+	 * @since 4.2
+	 */
+	public static SQLSelect<Object[]> arrayQuery(String sql, Class<?> firstType, Class<?>... types) {
+		SQLSelect<Object[]> query = new SQLSelect<>(sql);
+		return query.resultColumnsTypes(firstType).resultColumnsTypes(types).useScalar();
+	}
+
+	/**
 	 * Creates query that selects scalar values (as Object[]) and uses routing based on the
 	 * provided DataMap name.
 	 *
 	 * @since 4.1
+	 * @deprecated since 4.2. Use {@link #arrayQuery(String, String, Class, Class...)}
+	 */
+	@Deprecated
+	public static SQLSelect<Object[]> scalarQuery(String sql,
+												  String dataMapName,
+												  Class<?> firstType,
+												  Class<?>... types) {
+		SQLSelect<Object[]> query = new SQLSelect<>(sql);
+		query.dataMapName = dataMapName;
+		return query.resultColumnsTypes(firstType).resultColumnsTypes(types).useScalar();
+	}
+
+	/**
+	 * Creates query that selects scalar values (as Object[]) and uses routing based on the
+	 * provided DataMap name.
+	 *
+	 * @since 4.2
 	 */
-	public static SQLSelect<Object[]> scalarQuery(String sql, String dataMapName, Class<?> firstType, Class<?>... types) {
+	public static SQLSelect<Object[]> arrayQuery(String sql,
+												 String dataMapName,
+												 Class<?> firstType,
+												 Class<?>... types) {
 		SQLSelect<Object[]> query = new SQLSelect<>(sql);
 		query.dataMapName = dataMapName;
 		return query.resultColumnsTypes(firstType).resultColumnsTypes(types).useScalar();
@@ -259,11 +317,24 @@ public class SQLSelect<T> extends IndirectQuery implements Select<T> {
 		return this;
 	}
 
+	/**
+	 * @deprecated since 4.2
+	 * Use {@link #param(String, Object)}
+	 */
+	@Deprecated
 	public SQLSelect<T> params(String name, Object value) {
 		params(Collections.singletonMap(name, value));
 		return this;
 	}
 
+	/**
+	 * @since 4.2
+	 */
+	public SQLSelect<T> param(String name, Object value) {
+		params(Collections.singletonMap(name, value));
+		return this;
+	}
+
 	@SuppressWarnings({ "rawtypes", "unchecked" })
 	public SQLSelect<T> params(Map<String, ?> parameters) {
 		if (this.params == null) {
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 1e53b55..4185bb7 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
@@ -30,7 +30,6 @@ import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.ResultBatchIterator;
 import org.apache.cayenne.ResultIterator;
-import org.apache.cayenne.ResultIteratorCallback;
 import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.jdbc.DBHelper;
@@ -151,7 +150,7 @@ public class SQLSelectIT extends ServerCase {
 	public void testObjectArrayWithDefaultTypesReturnAndDirectives() throws Exception {
 		createArtistDataSet();
 
-		List<Object[]> result = SQLSelect.scalarQuery("SELECT #result('ARTIST_ID' 'java.lang.Long'), #result('ARTIST_NAME' 'java.lang.String') FROM ARTIST_CT")
+		List<Object[]> result = SQLSelect.arrayQuery("SELECT #result('ARTIST_ID' 'java.lang.Long'), #result('ARTIST_NAME' 'java.lang.String') FROM ARTIST_CT")
 				.select(context);
 
 		assertEquals(2, result.size());
@@ -165,7 +164,7 @@ public class SQLSelectIT extends ServerCase {
 	public void testObjectArrayReturnAndDirectives() throws Exception {
 		createArtistDataSet();
 
-		SQLSelect.scalarQuery("SELECT #result('ARTIST_ID' 'java.lang.Long'), #result('ARTIST_NAME' 'java.lang.String') FROM ARTIST_CT",
+		SQLSelect.arrayQuery("SELECT #result('ARTIST_ID' 'java.lang.Long'), #result('ARTIST_NAME' 'java.lang.String') FROM ARTIST_CT",
 				Integer.class, String.class).select(context);
 	}
 
@@ -173,7 +172,7 @@ public class SQLSelectIT extends ServerCase {
 	public void testObjectArrayWithOneObjectDefaultTypesReturnAndDirectives() throws Exception {
 		createArtistDataSet();
 
-		List<Object[]> result = SQLSelect.scalarQuery("SELECT #result('ARTIST_ID' 'java.lang.Long') FROM ARTIST_CT")
+		List<Object[]> result = SQLSelect.arrayQuery("SELECT #result('ARTIST_ID' 'java.lang.Long') FROM ARTIST_CT")
 				.select(context);
 
 		assertEquals(2, result.size());
@@ -186,7 +185,7 @@ public class SQLSelectIT extends ServerCase {
 	public void test_ObjectArrayQueryWithDefaultTypes() throws Exception {
 		createPaintingsDataSet();
 
-		List<Object[]> result = SQLSelect.scalarQuery("SELECT PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE FROM PAINTING")
+		List<Object[]> result = SQLSelect.arrayQuery("SELECT PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE FROM PAINTING")
 				.select(context);
 
 		assertEquals(20, result.size());
@@ -197,7 +196,7 @@ public class SQLSelectIT extends ServerCase {
 	public void test_ObjectQueryWithDefaultType() throws Exception {
 		createPaintingsDataSet();
 
-		List<Object[]> result = SQLSelect.scalarQuery("SELECT PAINTING_ID FROM PAINTING")
+		List<Object[]> result = SQLSelect.arrayQuery("SELECT PAINTING_ID FROM PAINTING")
 				.select(context);
 		assertEquals(20, result.size());
 		assertTrue(result.get(0) instanceof Object[]);
@@ -208,7 +207,7 @@ public class SQLSelectIT extends ServerCase {
 	public void test_ObjectArrayQueryException() throws Exception {
 		createPaintingsDataSet();
 
-		SQLSelect<Object[]> query = SQLSelect.scalarQuery("SELECT PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE FROM PAINTING", Integer.class, String.class);
+		SQLSelect<Object[]> query = SQLSelect.arrayQuery("SELECT PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE FROM PAINTING", Integer.class, String.class);
 		context.performQuery(query);
 	}
 
@@ -226,7 +225,7 @@ public class SQLSelectIT extends ServerCase {
 	public void testObjectArrayWithCustomType() throws SQLException {
 		createArtistDataSet();
 
-		List<Object[]> results = SQLSelect.scalarQuery("SELECT * FROM ARTIST_CT",
+		List<Object[]> results = SQLSelect.arrayQuery("SELECT * FROM ARTIST_CT",
 				Integer.class, String.class, LocalDateTime.class).select(context);
 
 		assertEquals(2, results.size());
@@ -241,7 +240,7 @@ public class SQLSelectIT extends ServerCase {
 
 		SQLSelect<Painting> q1 = SQLSelect.query(Painting.class,
 				"SELECT * FROM PAINTING WHERE PAINTING_TITLE = #bind($a)");
-		q1.params("a", "painting3").columnNameCaps(CapsStrategy.UPPER);
+		q1.param("a", "painting3").columnNameCaps(CapsStrategy.UPPER);
 
 		assertFalse(q1.isFetchingDataRows());
 		Painting a = context.selectOne(q1);
@@ -255,7 +254,7 @@ public class SQLSelectIT extends ServerCase {
 		SQLSelect<Painting> q1 = SQLSelect.query(Painting.class,
 				"SELECT * FROM PAINTING WHERE PAINTING_TITLE = #bind($a) OR PAINTING_TITLE = #bind($b)")
 				.columnNameCaps(CapsStrategy.UPPER);
-		q1.params("a", "painting3").params("b", "painting4");
+		q1.param("a", "painting3").param("b", "painting4");
 
 		List<Painting> result = context.select(q1);
 		assertEquals(2, result.size());
@@ -299,7 +298,7 @@ public class SQLSelectIT extends ServerCase {
 		createPaintingsDataSet();
 
 		SQLSelect<Painting> q1 = SQLSelect.query(Painting.class, "SELECT * FROM PAINTING")
-				.append(" WHERE PAINTING_TITLE = #bind($a)").params("a", "painting3")
+				.append(" WHERE PAINTING_TITLE = #bind($a)").param("a", "painting3")
 				.columnNameCaps(CapsStrategy.UPPER);
 
 		List<Painting> result = context.select(q1);
@@ -312,7 +311,7 @@ public class SQLSelectIT extends ServerCase {
 
 		List<Painting> result = SQLSelect
 				.query(Painting.class, "SELECT * FROM PAINTING WHERE PAINTING_TITLE = #bind($a)")
-				.params("a", "painting3").columnNameCaps(CapsStrategy.UPPER).select(context);
+				.param("a", "painting3").columnNameCaps(CapsStrategy.UPPER).select(context);
 
 		assertEquals(1, result.size());
 	}
@@ -322,7 +321,7 @@ public class SQLSelectIT extends ServerCase {
 		createPaintingsDataSet();
 
 		Painting a = SQLSelect.query(Painting.class, "SELECT * FROM PAINTING WHERE PAINTING_TITLE = #bind($a)")
-				.params("a", "painting3").columnNameCaps(CapsStrategy.UPPER).selectOne(context);
+				.param("a", "painting3").columnNameCaps(CapsStrategy.UPPER).selectOne(context);
 
 		assertEquals("painting3", a.getPaintingTitle());
 	}
@@ -355,12 +354,9 @@ public class SQLSelectIT extends ServerCase {
 
 		final int[] count = new int[1];
 		SQLSelect.query(Painting.class, "SELECT * FROM PAINTING").columnNameCaps(CapsStrategy.UPPER)
-				.iterate(context, new ResultIteratorCallback<Painting>() {
-					@Override
-					public void next(Painting object) {
-						assertNotNull(object.getPaintingTitle());
-						count[0]++;
-					}
+				.iterate(context, object -> {
+					assertNotNull(object.getPaintingTitle());
+					count[0]++;
 				});
 
 		assertEquals(20, count[0]);
@@ -406,7 +402,7 @@ public class SQLSelectIT extends ServerCase {
 		long id = SQLSelect
 				.scalarQuery( "SELECT PAINTING_ID FROM PAINTING WHERE PAINTING_TITLE = #bind($a)",
 						Integer.class)
-				.params("a", "painting3").selectOne(context);
+				.param("a", "painting3").selectOne(context);
 
 		assertEquals(3l, id);
 	}