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 <[email protected]>
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();