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

aadamchik 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 913ab43  confirming that disjoint-by-id prefetches work for SQLSelect
913ab43 is described below

commit 913ab43253ea257c33d5daeb17d55247a1c42ed8
Author: Andrus Adamchik <and...@objectstyle.com>
AuthorDate: Thu Jul 30 09:34:15 2020 +0300

    confirming that disjoint-by-id prefetches work for SQLSelect
    
    ... to one
---
 .../access/DataContextDisjointByIdPrefetchIT.java  | 26 ++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
index 33b59d8..d79dfcf 100644
--- 
a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
+++ 
b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
@@ -190,6 +190,32 @@ public class DataContextDisjointByIdPrefetchIT extends 
ServerCase {
     }
 
     @Test
+    public void testManyToOne_SQLSelect() throws Exception {
+        createArtistWithTwoPaintingsDataSet();
+
+        List<Painting> result = SQLSelect.query(Painting.class, "SELECT "
+                + "#result('ESTIMATED_PRICE' 'BigDecimal'), "
+                + "#result('PAINTING_TITLE' 'String'), "
+                + "#result('PAINTING_DESCRIPTION' 'String'), "
+                + "#result('GALLERY_ID' 'int'), "
+                + "#result('PAINTING_ID' 'int'), "
+                + "#result('ARTIST_ID' 'int') "
+                + "FROM PAINTING")
+                .addPrefetch(Painting.TO_ARTIST.disjointById())
+                .select(context);
+
+        queryInterceptor.runWithQueriesBlocked(() -> {
+            assertFalse(result.isEmpty());
+            Painting p1 = result.get(0);
+            assertEquals(PersistenceState.COMMITTED, p1.getPersistenceState());
+
+            assertNotNull(p1.getToArtist());
+            assertEquals(PersistenceState.COMMITTED, 
p1.getToArtist().getPersistenceState());
+            assertEquals("X", p1.getToArtist().getArtistName());
+        });
+    }
+
+    @Test
     public void testFetchLimit() throws Exception {
         createThreeArtistsWithPlentyOfPaintingsDataSet();
 

Reply via email to