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