public void testPrefetchToMany_WithQualfier() throws Exception { createTwoArtistsAndTwoPaintingsDataSet(); Map<String, Object> params = new HashMap<String, Object>(); params.put("name1", "artist2"); params.put("name2", "artist3"); Expression e = Expression.fromString("artistName = $name1 or artistName = $name2"); SelectQuery q = new SelectQuery("Artist", e.expWithParameters(params)); q.addPrefetch(Artist.PAINTING_ARRAY_PROPERTY); final List<Artist> artists = context.performQuery(q); queryInterceptor.runWithQueriesBlocked( new UnitTestClosure() { public void execute() { assertEquals(2, artists.size()); Artist a1 = artists.get(0); List<?> toMany = (List<?>) a1.readPropertyDirectly(Artist.PAINTING_ARRAY_PROPERTY); assertNotNull(toMany); assertFalse(((ValueHolder) toMany).isFault()); assertEquals(1, toMany.size()); Painting p1 = (Painting) toMany.get(0); assertEquals("p_" + a1.getArtistName(), p1.getPaintingTitle()); Artist a2 = artists.get(1); List<?> toMany2 = (List<?>) a2.readPropertyDirectly(Artist.PAINTING_ARRAY_PROPERTY); assertNotNull(toMany2); assertFalse(((ValueHolder) toMany2).isFault()); assertEquals(1, toMany2.size()); Painting p2 = (Painting) toMany2.get(0); assertEquals("p_" + a2.getArtistName(), p2.getPaintingTitle()); } }); }