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