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);
}