You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/02/14 13:33:41 UTC
[2/5] cayenne git commit: CAY-2406 Add prefetch-related API to
SQLSelect
CAY-2406 Add prefetch-related API to SQLSelect
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/90e52733
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/90e52733
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/90e52733
Branch: refs/heads/master
Commit: 90e527334502558528da8b1910c42eb0b740f778
Parents: a43c1e6
Author: Maxim Petrusevich <ma...@gmail.com>
Authored: Mon Feb 12 09:04:54 2018 +0300
Committer: Maxim Petrusevich <ma...@gmail.com>
Committed: Mon Feb 12 09:04:54 2018 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/query/SQLSelect.java | 4 +++-
.../apache/cayenne/access/JointPrefetchIT.java | 21 ++++++++++----------
2 files changed, 13 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/90e52733/cayenne-server/src/main/java/org/apache/cayenne/query/SQLSelect.java
----------------------------------------------------------------------
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 579dc5f..dafc362 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
@@ -263,7 +263,9 @@ public class SQLSelect<T> extends IndirectQuery implements Select<T> {
template.setDefaultTemplate(getSql());
template.setCacheGroup(cacheGroup);
template.setCacheStrategy(cacheStrategy);
- template.addPrefetch(prefetches);
+ if (prefetches != null) {
+ template.addPrefetch(prefetches);
+ }
if (positionalParams != null) {
template.setParamsList(positionalParams);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/90e52733/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
index 6cada72..7f202ed 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
@@ -406,17 +406,17 @@ public class JointPrefetchIT extends ServerCase {
@Test
public void testJointPrefetchSQLSelectToMany() throws Exception {
createJointPrefetchDataSet();
- SQLSelect sqlSelect = SQLSelect.query(Artist.class, "SELECT "
+
+ @SuppressWarnings("unchecked")
+ final List<Artist> objects = SQLSelect.query(Artist.class, "SELECT "
+ "#result('PAINTING_ID' 'int' '' 'paintingArray.PAINTING_ID'), "
+ "#result('ARTIST_NAME' 'String'), "
+ "#result('DATE_OF_BIRTH' 'java.util.Date'), "
+ "#result('t0.ARTIST_ID' 'int' '' 'ARTIST_ID') "
+ "FROM ARTIST t0, PAINTING t1 "
- + "WHERE t0.ARTIST_ID = t1.ARTIST_ID");
- sqlSelect.addPrefetch(Artist.PAINTING_ARRAY.joint());
-
- @SuppressWarnings("unchecked")
- final List<Artist> objects = (List<Artist>)sqlSelect.select(context);
+ + "WHERE t0.ARTIST_ID = t1.ARTIST_ID")
+ .addPrefetch(Artist.PAINTING_ARRAY.joint())
+ .select(context);
queryInterceptor.runWithQueriesBlocked(() -> {
assertNotNull(objects);
assertEquals(2, objects.size());
@@ -434,14 +434,13 @@ public class JointPrefetchIT extends ServerCase {
@Test
public void testJointPrefetchSQLSelectNestedJoint() throws Exception {
createJointPrefetchDataSet();
- SQLSelect sqlSelect = SQLSelect.query(Artist.class, "SELECT "
+ SQLSelect.query(Artist.class, "SELECT "
+ "#result('GALLERY_ID' 'int' '' 'paintingArray.toGallery.GALLERY_ID'),"
+ "#result('GALLERY_NAME' 'String' '' 'paintingArray.toGallery.GALLERY_NAME'),"
+ "#result('t0.ARTIST_ID' 'int' '' 'ARTIST_ID') "
- + "FROM ARTIST t0, GALLERY t2 ");
- sqlSelect.addPrefetch(Artist.PAINTING_ARRAY.dot(Painting.TO_GALLERY).joint());
-
- sqlSelect.select(context);
+ + "FROM ARTIST t0, GALLERY t2 ")
+ .addPrefetch(Artist.PAINTING_ARRAY.dot(Painting.TO_GALLERY).joint())
+ .select(context);
queryInterceptor.runWithQueriesBlocked(() -> {
DataObject g1 = (DataObject) context.getGraphManager().getNode(
new ObjectId("Gallery", Gallery.GALLERY_ID_PK_COLUMN, 33001)