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 2020/11/23 15:46:33 UTC

[cayenne] branch master updated: - Fix prefetch of the entity with lazy attributes - Enable tests for that

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

ntimofeev 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 5209b9f  - Fix prefetch of the entity with lazy attributes - Enable tests for that
5209b9f is described below

commit 5209b9f533ab5f2ac97d31eeb3d1dd2c4dbd64d8
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Mon Nov 23 18:46:12 2020 +0300

    - Fix prefetch of the entity with lazy attributes
    - Enable tests for that
---
 .../cayenne/access/PrefetchProcessorJointNode.java |  4 +++-
 .../access/{Cay2641.java => Cay2641IT.java}        | 27 +++++++++++-----------
 2 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java b/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
index ccf8a46..9d72ddc 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
@@ -197,7 +197,9 @@ class PrefetchProcessorJointNode extends PrefetchProcessorNode {
 
             public boolean visitAttribute(AttributeProperty property) {
                 String target = property.getAttribute().getDbAttributePath();
-                appendColumn(targetSource, target, prefix + target);
+                if(!property.getAttribute().isLazy()) {
+                    appendColumn(targetSource, target, prefix + target);
+                }
                 return true;
             }
 
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/Cay2641.java b/cayenne-server/src/test/java/org/apache/cayenne/access/Cay2641IT.java
similarity index 89%
rename from cayenne-server/src/test/java/org/apache/cayenne/access/Cay2641.java
rename to cayenne-server/src/test/java/org/apache/cayenne/access/Cay2641IT.java
index e10be4b..98d51b8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/Cay2641.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/Cay2641IT.java
@@ -39,14 +39,13 @@ import org.junit.Test;
 import java.sql.Types;
 import java.util.List;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 /**
  * @since 4.2
  */
 @UseServerRuntime(CayenneProjects.CAY_2641)
-public class Cay2641 extends ServerCase {
+public class Cay2641IT extends ServerCase {
 
     @Inject
     private ObjectContext context;
@@ -80,7 +79,7 @@ public class Cay2641 extends ServerCase {
         assertFalse(sql.contains("t0.NAME"));
 
         String string = "SELECT t0.SURNAME, t0.ID FROM ArtistLazy t0";
-        assertTrue(sql.equals(string));
+        assertEquals(sql, string);
 
         ColumnSelect<String> select = ObjectSelect.columnQuery(ArtistLazy.class, ArtistLazy.NAME);
         translator = new DefaultSelectTranslator(select, adapter, context.getEntityResolver());
@@ -97,7 +96,7 @@ public class Cay2641 extends ServerCase {
         assertTrue(object instanceof Fault);
 
         object = artists.get(0).readPropertyDirectly("surname");
-        assertTrue(object.equals("artist2"));
+        assertEquals("artist2", object);
     }
 
     @Test
@@ -109,7 +108,7 @@ public class Cay2641 extends ServerCase {
 
         artist.getName();
         object = artist.readPropertyDirectly("name");
-        assertTrue(object.equals("artist1"));
+        assertEquals("artist1", object);
     }
 
     @Test
@@ -119,31 +118,33 @@ public class Cay2641 extends ServerCase {
         String sql = translator.getSql();
         assertFalse(sql.contains("t0.NAME"));
 
-        String string = "SELECT DISTINCT t0.ARTIST_ID, t0.ID, t1.ID, t1.SURNAME FROM PaintingLazy t0 LEFT JOIN ArtistLazy t1 ON t0.ARTIST_ID = t1.ID";
-        assertTrue(sql.equals(string));
+        String string = "SELECT t0.ARTIST_ID, t0.ID, t1.ID, t1.SURNAME FROM PaintingLazy t0 LEFT JOIN ArtistLazy t1 ON t0.ARTIST_ID = t1.ID";
+        assertEquals(sql, string);
     }
 
     @Test
     public void testPrefetchLazyTypeAttributes() {
-        List<PaintingLazy> paintingLazyList = ObjectSelect.query(PaintingLazy.class).prefetch(PaintingLazy.ARTIST.joint()).select(context);
+        List<PaintingLazy> paintingLazyList = ObjectSelect.query(PaintingLazy.class)
+                .prefetch(PaintingLazy.ARTIST.joint())
+                .select(context);
 
         Object object = paintingLazyList.get(0).readPropertyDirectly("name");
         assertTrue(object instanceof Fault);
 
         object = paintingLazyList.get(0).getName();
         assertTrue(object instanceof String);
-        assertTrue(object.equals("painting1"));
+        assertEquals("painting1", object);
 
         ArtistLazy artist = (ArtistLazy) paintingLazyList.get(0).readPropertyDirectly("artist");
         object = artist.readPropertyDirectly("name");
         assertTrue(object instanceof Fault);
 
         object = artist.readPropertyDirectly("surname");
-        assertTrue(object.equals("artist2"));
+        assertEquals("artist2", object);
 
         object = artist.getName();
         assertTrue(object instanceof String);
-        assertTrue(object.equals("artist1"));
+        assertEquals("artist1", object);
     }
 
     @Test
@@ -156,7 +157,7 @@ public class Cay2641 extends ServerCase {
 
         object = artistLazies.get(0).readPropertyDirectly("surname");
         assertTrue(object instanceof String);
-        assertTrue(object.equals("artist2"));
+        assertEquals("artist2", object);
     }
 
     @Test