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

asf-gitbox-commits 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 50e2ad346 ObjectSelect cleanup - deprecating multi-arg factory methods
50e2ad346 is described below

commit 50e2ad346c261131cae117c5f82dd7772b13614d
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sun Aug 30 14:42:30 2026 -0400

    ObjectSelect cleanup - deprecating multi-arg factory methods
    
    that are easily replaced with fluent calls
---
 .../cayenne/access/OptimisticLockException.java    |  4 +--
 .../apache/cayenne/map/SelectQueryDescriptor.java  | 12 +++----
 .../org/apache/cayenne/query/ObjectSelect.java     | 38 +++++++++++++++++-----
 .../java/org/apache/cayenne/CDOMany2OneIT.java     |  9 +++--
 .../java/org/apache/cayenne/CDOOne2ManyIT.java     |  4 +--
 .../java/org/apache/cayenne/CayenneDOTestBase.java |  6 ++--
 .../test/java/org/apache/cayenne/CayenneIT.java    |  3 +-
 .../CayennePersistentObjectFlattenedRelIT.java     |  6 ++--
 .../CayennePersistentObjectInContextIT.java        |  8 +++--
 .../apache/cayenne/FlattenedRelationshipsIT.java   |  3 +-
 .../access/DataContextFlattenedAttributesIT.java   |  3 +-
 .../org/apache/cayenne/access/DataContextIT.java   | 18 +++++-----
 .../apache/cayenne/access/QuotedIdentifiersIT.java | 12 ++++---
 .../SimpleIdIncrementalFaultListDataRowsIT.java    | 10 +++---
 .../DbAdapterDelegatedSelectTranslatorIT.java      | 10 +++---
 .../select/DefaultObjectSelectTranslatorIT.java    |  2 +-
 .../QualifierTranslatorExistExpressionIT.java      | 24 +++++++-------
 .../apache/cayenne/exp/ExpressionFactoryIT.java    | 14 ++++----
 .../java/org/apache/cayenne/exp/ExpressionIT.java  | 14 ++++----
 .../cayenne/exp/ParsedExpQualifierCompatIT.java    |  2 +-
 .../org/apache/cayenne/exp/parser/ASTExistsIT.java |  4 +--
 .../apache/cayenne/exp/parser/ASTExtractIT.java    | 20 ++++++------
 .../cayenne/exp/parser/ASTFunctionCallDateIT.java  | 18 +++++-----
 .../apache/cayenne/exp/parser/ASTNotExistsIT.java  |  4 +--
 .../cayenne/exp/parser/ExpressionEvaluationIT.java |  2 +-
 .../java/org/apache/cayenne/jira/CAY_115IT.java    |  2 +-
 .../java/org/apache/cayenne/jira/CAY_194IT.java    |  9 +++--
 .../org/apache/cayenne/query/ColumnSelectIT.java   |  2 +-
 .../query/FluentSelectPrefetchRouterActionIT.java  |  4 +--
 ...electPrefetchRouterActionQualifiedEntityIT.java |  4 +--
 .../org/apache/cayenne/query/ObjectSelectTest.java |  2 +-
 .../cayenne/query/ObjectSelect_SubqueryIT.java     |  9 ++---
 .../cayenne/query/SelectQueryReturnTypesIT.java    |  8 ++---
 33 files changed, 166 insertions(+), 124 deletions(-)

diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/OptimisticLockException.java 
b/cayenne/src/main/java/org/apache/cayenne/access/OptimisticLockException.java
index 7362e3404..6f2d438a8 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/OptimisticLockException.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/OptimisticLockException.java
@@ -92,8 +92,8 @@ public class OptimisticLockException extends 
CayenneRuntimeException {
                     : attributeQualifier;
         }
 
-        return ObjectSelect.dbQuery(rootEntity.getName(), qualifier)
-                .fetchDataRows()
+        return ObjectSelect.dbQuery(rootEntity.getName())
+                .where(qualifier)
                 .selectFirst(context);
     }
 
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/map/SelectQueryDescriptor.java 
b/cayenne/src/main/java/org/apache/cayenne/map/SelectQueryDescriptor.java
index 1422c418e..f80ee3855 100644
--- a/cayenne/src/main/java/org/apache/cayenne/map/SelectQueryDescriptor.java
+++ b/cayenne/src/main/java/org/apache/cayenne/map/SelectQueryDescriptor.java
@@ -18,11 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.map;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.exp.Expression;
@@ -31,6 +26,11 @@ import org.apache.cayenne.query.Ordering;
 import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.util.XMLEncoder;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @since 4.0
  */
@@ -161,7 +161,7 @@ public class SelectQueryDescriptor extends QueryDescriptor {
             throw new CayenneRuntimeException("Unexpected root for the 
SelectQueryDescriptor '%s'.", root);
         }
 
-        ObjectSelect<?> query = ObjectSelect.query(Object.class, qualifier);
+        ObjectSelect<?> query = 
ObjectSelect.query(Object.class).where(qualifier);
         query.entityName(rootEntityName);
 
         List<Ordering> orderings = this.getOrderings();
diff --git a/cayenne/src/main/java/org/apache/cayenne/query/ObjectSelect.java 
b/cayenne/src/main/java/org/apache/cayenne/query/ObjectSelect.java
index 5fae16704..ae8862626 100644
--- a/cayenne/src/main/java/org/apache/cayenne/query/ObjectSelect.java
+++ b/cayenne/src/main/java/org/apache/cayenne/query/ObjectSelect.java
@@ -18,8 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.query;
 
-import java.util.List;
-
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.exp.Expression;
@@ -33,6 +31,9 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.ObjEntity;
 
+import java.util.Collection;
+import java.util.List;
+
 /**
  * A selecting query providing chainable API.
  * <p>
@@ -62,7 +63,10 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
     /**
      * Creates a ObjectSelect that selects objects of a given persistent class
      * and uses provided expression for its qualifier.
+     *
+     * @deprecated use {@link #query(Class)} and then {@link 
ObjectSelect#where}
      */
+    @Deprecated(since = "5.0", forRemoval = true)
     public static <T> ObjectSelect<T> query(Class<T> entityType, Expression 
expression) {
         return new ObjectSelect<T>().entityType(entityType).where(expression);
     }
@@ -70,7 +74,10 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
     /**
      * Creates a ObjectSelect that selects objects of a given persistent class
      * and uses provided expression for its qualifier.
+     *
+     * @deprecated use {@link #query(Class)} and then {@link 
ObjectSelect#where} and {@link #orderBy(Collection)}
      */
+    @Deprecated(since = "5.0", forRemoval = true)
     public static <T> ObjectSelect<T> query(Class<T> entityType, Expression 
expression, List<Ordering> orderings) {
         return new 
ObjectSelect<T>().entityType(entityType).where(expression).orderBy(orderings);
     }
@@ -87,7 +94,10 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
      * Creates a ObjectSelect that fetches data for an {@link ObjEntity}
      * determined from a provided class and uses provided expression for its
      * qualifier.
+     *
+     * @deprecated use {@link #dataRowQuery(Class)} and then {@link 
ObjectSelect#where}
      */
+    @Deprecated(since = "5.0", forRemoval = true)
     public static ObjectSelect<DataRow> dataRowQuery(Class<?> entityType, 
Expression expression) {
         return query(entityType).fetchDataRows().where(expression);
     }
@@ -115,8 +125,9 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
      * determined from provided "dbEntityName" and uses provided expression for
      * its qualifier.
      *
-     * @return this object
+     * @deprecated use {@link #dbQuery(String)} and then {@link 
ObjectSelect#where}
      */
+    @Deprecated(since = "5.0", forRemoval = true)
     public static ObjectSelect<DataRow> dbQuery(String dbEntityName, 
Expression expression) {
         return new 
ObjectSelect<DataRow>().fetchDataRows().dbEntityName(dbEntityName).where(expression);
     }
@@ -126,7 +137,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
      * against a given {@link ObjEntity} class.
      *
      * @param entityType base persistent class that will be used as a root for 
this query
-     * @param column single column to select
+     * @param column     single column to select
      */
     public static <E> ColumnSelect<E> columnQuery(Class<?> entityType, 
Property<E> column) {
         return new ColumnSelect<>().entityType(entityType).column(column);
@@ -136,7 +147,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
      * Creates a ColumnSelect that will fetch multiple columns of a given 
{@link ObjEntity}
      *
      * @param entityType base persistent class that will be used as a root for 
this query
-     * @param columns columns to select
+     * @param columns    columns to select
      */
     public static ColumnSelect<Object[]> columnQuery(Class<?> entityType, 
Property<?>... columns) {
         return new 
ColumnSelect<Object[]>().entityType(entityType).columns(columns);
@@ -176,8 +187,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
     }
 
     /**
-     * Forces query to fetch DataRows. This automatically changes whatever
-     * result type was set previously to "DataRow".
+     * Forces query to fetch DataRows. This automatically changes whatever 
result type was set previously to "DataRow".
      *
      * @return this object
      */
@@ -220,6 +230,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
      * }
      * </pre>
      * </p>
+     *
      * @param property single property to select
      * @see ObjectSelect#columns(Property[])
      */
@@ -229,6 +240,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
 
     /**
      * Select COUNT(*)
+     *
      * @see ObjectSelect#column(Property)
      */
     public ColumnSelect<Long> count() {
@@ -238,6 +250,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
     /**
      * <p>Select COUNT(property)</p>
      * <p>Can return different result than COUNT(*) as it will count only non 
null values</p>
+     *
      * @see ObjectSelect#count()
      * @see ObjectSelect#column(Property)
      */
@@ -247,6 +260,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
 
     /**
      * <p>Select minimum value of property</p>
+     *
      * @see ObjectSelect#column(Property)
      */
     public <E> ColumnSelect<E> min(ComparableProperty<E> property) {
@@ -255,6 +269,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
 
     /**
      * <p>Select minimum value of property</p>
+     *
      * @see ObjectSelect#column(Property)
      */
     public <E extends Number> ColumnSelect<E> min(NumericProperty<E> property) 
{
@@ -263,6 +278,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
 
     /**
      * <p>Select maximum value of property</p>
+     *
      * @see ObjectSelect#column(Property)
      */
     public <E> ColumnSelect<E> max(ComparableProperty<E> property) {
@@ -271,6 +287,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
 
     /**
      * <p>Select maximum value of property</p>
+     *
      * @see ObjectSelect#column(Property)
      */
     public <E extends Number> ColumnSelect<E> max(NumericProperty<E> property) 
{
@@ -279,6 +296,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
 
     /**
      * <p>Select average value of property</p>
+     *
      * @see ObjectSelect#column(Property)
      */
     public <E extends Number> ColumnSelect<E> avg(NumericProperty<E> property) 
{
@@ -287,6 +305,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
 
     /**
      * <p>Select sum of values</p>
+     *
      * @see ObjectSelect#column(Property)
      */
     public <E extends Number> ColumnSelect<E> sum(NumericProperty<E> property) 
{
@@ -295,8 +314,8 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
 
     /**
      * <p>Select result of some function, that aggregates values.</p>
-     * @see ObjectSelect#column(Property)
      *
+     * @see ObjectSelect#column(Property)
      * @since 5.0
      */
     public <E> ColumnSelect<E> aggregate(BaseProperty<E> property, String 
function, Class<E> type) {
@@ -304,8 +323,8 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
     }
 
     /**
-     * @since 4.2
      * @return this
+     * @since 4.2
      */
     public ObjectSelect<T> distinct() {
         this.distinct = true;
@@ -323,6 +342,7 @@ public class ObjectSelect<T> extends FluentSelect<T, 
ObjectSelect<T>> {
      * }
      * </pre>
      * </p>
+     *
      * @param context to perform query
      * @return count of rows
      */
diff --git a/cayenne/src/test/java/org/apache/cayenne/CDOMany2OneIT.java 
b/cayenne/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
index 0b07ff86c..150175f17 100644
--- a/cayenne/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
@@ -121,7 +121,8 @@ public class CDOMany2OneIT {
 
         Artist a1 = Cayenne.objectForPK(env.context(), Artist.class, 8);
 
-        List<ROPainting> paints = ObjectSelect.query(ROPainting.class, 
ROPainting.TO_ARTIST.eq(a1)).select(env.context());
+        List<ROPainting> paints = ObjectSelect.query(ROPainting.class)
+                .where(ROPainting.TO_ARTIST.eq(a1)).select(env.context());
         assertEquals(1, paints.size());
 
         ROPainting rop1 = paints.get(0);
@@ -135,7 +136,8 @@ public class CDOMany2OneIT {
 
         Artist a1 = Cayenne.objectForPK(env.context(), Artist.class, 8);
 
-        List<ROPainting> paints = ObjectSelect.query(ROPainting.class, 
ROPainting.TO_ARTIST.eq(a1)).select(env.context());
+        List<ROPainting> paints = ObjectSelect.query(ROPainting.class)
+                .where(ROPainting.TO_ARTIST.eq(a1)).select(env.context());
         assertEquals(1, paints.size());
 
         ROPainting rop1 = paints.get(0);
@@ -153,7 +155,8 @@ public class CDOMany2OneIT {
         Artist a1 = Cayenne.objectForPK(env.context(), Artist.class, 8);
         Painting p1 = Cayenne.objectForPK(env.context(), Painting.class, 6);
 
-        List<Painting> paints = ObjectSelect.query(Painting.class, 
Painting.TO_ARTIST.eq(a1)).select(env.context());
+        List<Painting> paints = ObjectSelect.query(Painting.class)
+                .where(Painting.TO_ARTIST.eq(a1)).select(env.context());
         assertEquals(1, paints.size());
         assertSame(p1, paints.get(0));
     }
diff --git a/cayenne/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java 
b/cayenne/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
index 7708d0194..da2a96e27 100644
--- a/cayenne/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
@@ -89,7 +89,7 @@ public class CDOOne2ManyIT {
         Expression e = ExpressionFactory.matchDbExp("paintingArray", p2);
 
         // *** TESTING THIS ***
-        List<Artist> artists = ObjectSelect.query(Artist.class, 
e).select(env.context());
+        List<Artist> artists = 
ObjectSelect.query(Artist.class).where(e).select(env.context());
         assertEquals(1, artists.size());
         assertSame(a1, artists.get(0));
     }
@@ -122,7 +122,7 @@ public class CDOOne2ManyIT {
         Expression e = ExpressionFactory.matchExp("paintingArray", p2);
 
         // *** TESTING THIS ***
-        List<Artist> artists = ObjectSelect.query(Artist.class, 
e).select(env.context());
+        List<Artist> artists = 
ObjectSelect.query(Artist.class).where(e).select(env.context());
         assertEquals(1, artists.size());
         assertSame(a1, artists.get(0));
     }
diff --git a/cayenne/src/test/java/org/apache/cayenne/CayenneDOTestBase.java 
b/cayenne/src/test/java/org/apache/cayenne/CayenneDOTestBase.java
index af299abb7..dc19c4b60 100644
--- a/cayenne/src/test/java/org/apache/cayenne/CayenneDOTestBase.java
+++ b/cayenne/src/test/java/org/apache/cayenne/CayenneDOTestBase.java
@@ -70,14 +70,16 @@ public abstract class CayenneDOTestBase {
     }
 
     protected Painting fetchPainting() {
-        List<Painting> pts = ObjectSelect.query(Painting.class, 
Painting.PAINTING_TITLE.eq(paintingName)).select(context);
+        List<Painting> pts = ObjectSelect.query(Painting.class)
+                
.where(Painting.PAINTING_TITLE.eq(paintingName)).select(context);
         return (!pts.isEmpty()) ? pts.getFirst() : null;
     }
 
     protected PaintingInfo fetchPaintingInfo() {
         // we are using "LIKE" comparison, since Sybase does not allow
         // "=" comparisons on "text" columns
-        List<PaintingInfo> pts = ObjectSelect.query(PaintingInfo.class, 
PaintingInfo.TEXT_REVIEW.like(textReview)).select(context);
+        List<PaintingInfo> pts = ObjectSelect.query(PaintingInfo.class)
+                
.where(PaintingInfo.TEXT_REVIEW.like(textReview)).select(context);
         return !pts.isEmpty() ? pts.getFirst() : null;
     }
 }
diff --git a/cayenne/src/test/java/org/apache/cayenne/CayenneIT.java 
b/cayenne/src/test/java/org/apache/cayenne/CayenneIT.java
index 5f4ba188c..88099026a 100644
--- a/cayenne/src/test/java/org/apache/cayenne/CayenneIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/CayenneIT.java
@@ -153,7 +153,8 @@ public class CayenneIT {
     public void objectForSelect() throws Exception {
         createOneArtist();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, 
ExpressionFactory.matchDbExp("ARTIST_NAME", "artist2"));
+        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class)
+                .where(ExpressionFactory.matchDbExp("ARTIST_NAME", "artist2"));
 
         Artist object = env.context().selectOne(query);
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/CayennePersistentObjectFlattenedRelIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/CayennePersistentObjectFlattenedRelIT.java
index 9974cf755..efc722b31 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/CayennePersistentObjectFlattenedRelIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/CayennePersistentObjectFlattenedRelIT.java
@@ -104,7 +104,7 @@ public class CayennePersistentObjectFlattenedRelIT {
         Artist a1 = Cayenne.objectForPK(env.context(), Artist.class, 33001);
         assertEquals(0, a1.getGroupArray().size());
 
-        List<ArtGroup> results = ObjectSelect.query(ArtGroup.class, 
ArtGroup.NAME.eq("g1")).select(env.context());
+        List<ArtGroup> results = 
ObjectSelect.query(ArtGroup.class).where(ArtGroup.NAME.eq("g1")).select(env.context());
         assertEquals(1, results.size());
 
         assertFalse(env.context().hasChanges());
@@ -137,7 +137,7 @@ public class CayennePersistentObjectFlattenedRelIT {
 
         Artist a1 = Cayenne.objectForPK(env.context(), Artist.class, 33001);
 
-        List<ArtGroup> results = ObjectSelect.query(ArtGroup.class, 
ArtGroup.NAME.eq("g1")).select(env.context());
+        List<ArtGroup> results = 
ObjectSelect.query(ArtGroup.class).where(ArtGroup.NAME.eq("g1")).select(env.context());
         assertEquals(1, results.size());
 
         ArtGroup group = results.getFirst();
@@ -196,7 +196,7 @@ public class CayennePersistentObjectFlattenedRelIT {
 
         Artist a1 = Cayenne.objectForPK(env.context(), Artist.class, 33001);
 
-        List<ArtGroup> results = ObjectSelect.query(ArtGroup.class, 
ArtGroup.NAME.eq("g1")).select(env.context());
+        List<ArtGroup> results = 
ObjectSelect.query(ArtGroup.class).where(ArtGroup.NAME.eq("g1")).select(env.context());
         assertEquals(1, results.size());
 
         ArtGroup group = results.getFirst();
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/CayennePersistentObjectInContextIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/CayennePersistentObjectInContextIT.java
index 400d08bb8..3ec6a6b47 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/CayennePersistentObjectInContextIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/CayennePersistentObjectInContextIT.java
@@ -195,7 +195,7 @@ public class CayennePersistentObjectInContextIT {
 
         tArtist.insert(7, "m6");
 
-        List<Artist> artists = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.eq("m6")).select(context);
+        List<Artist> artists = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("m6")).select(context);
         assertEquals(1, artists.size());
         Artist o1 = artists.getFirst();
         assertNotNull(o1);
@@ -207,8 +207,10 @@ public class CayennePersistentObjectInContextIT {
 
         tArtist.insert(7, "m6");
 
-        Artist a1 = (Artist) Cayenne.objectForQuery(context, 
ObjectSelect.query(Artist.class, Artist.ARTIST_NAME.eq("m6")));
-        Artist a2 = (Artist) Cayenne.objectForQuery(context, 
ObjectSelect.query(Artist.class, Artist.ARTIST_NAME.eq("m6")));
+        Artist a1 = (Artist) Cayenne.objectForQuery(context, 
ObjectSelect.query(Artist.class)
+                .where(Artist.ARTIST_NAME.eq("m6")));
+        Artist a2 = (Artist) Cayenne.objectForQuery(context, 
ObjectSelect.query(Artist.class)
+                .where(Artist.ARTIST_NAME.eq("m6")));
 
         assertNotNull(a1);
         assertNotNull(a2);
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java 
b/cayenne/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
index c8404c569..f450aa1aa 100644
--- a/cayenne/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
@@ -221,7 +221,8 @@ public class FlattenedRelationshipsIT {
 
         context.invalidateObjects(ft1, ft2, ft3);
 
-        List<FlattenedTest3> results = 
ObjectSelect.query(FlattenedTest3.class, 
FlattenedTest3.NAME.eq("FT3Name")).select(context);
+        List<FlattenedTest3> results = ObjectSelect.query(FlattenedTest3.class)
+                .where(FlattenedTest3.NAME.eq("FT3Name")).select(context);
 
         assertEquals(1, results.size());
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
index 9a3f95725..324ad6a4a 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
@@ -164,7 +164,8 @@ public class DataContextFlattenedAttributesIT {
     public void selectCompound2() throws Exception {
         createTestDataSet();
 
-        List<CompoundPainting> objects = 
ObjectSelect.query(CompoundPainting.class, 
CompoundPainting.ARTIST_NAME.eq("artist2"))
+        List<CompoundPainting> objects = 
ObjectSelect.query(CompoundPainting.class)
+                .where(CompoundPainting.ARTIST_NAME.eq("artist2"))
                 .select(context);
 
         assertNotNull(objects);
diff --git a/cayenne/src/test/java/org/apache/cayenne/access/DataContextIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextIT.java
index 516118393..47ca6a47e 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/DataContextIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/DataContextIT.java
@@ -136,7 +136,7 @@ public class DataContextIT {
        public void currentSnapshot1() throws Exception {
                createSingleArtistDataSet();
 
-               Artist artist = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.eq("artist1")).selectFirst(context);
+               Artist artist = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("artist1")).selectFirst(context);
 
                DataRow snapshot = context.currentSnapshot(artist);
                assertEquals(artist.getArtistName(), 
snapshot.get("ARTIST_NAME"));
@@ -149,7 +149,7 @@ public class DataContextIT {
                createSingleArtistDataSet();
 
                // test null values
-               Artist artist = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.eq("artist1")).selectFirst(context);
+               Artist artist = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("artist1")).selectFirst(context);
 
                artist.setArtistName(null);
                artist.setDateOfBirth(null);
@@ -169,7 +169,7 @@ public class DataContextIT {
                createSingleArtistDataSet();
 
                // test null values
-               Artist artist = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.eq("artist1")).selectFirst(context);
+               Artist artist = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("artist1")).selectFirst(context);
 
                // test FK relationship snapshotting
                Painting p1 = new Painting();
@@ -231,7 +231,7 @@ public class DataContextIT {
        public void charInQualifier() throws Exception {
                createArtistsDataSet();
 
-               List<Artist> artists = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.eq("artist1")).select(context);
+               List<Artist> artists = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("artist1")).select(context);
                assertEquals(1, artists.size());
        }
 
@@ -311,7 +311,7 @@ public class DataContextIT {
        public void select_DataRows() throws Exception {
                createArtistsAndPaintingsDataSet();
 
-               List<DataRow> objects = ObjectSelect.dataRowQuery(Artist.class, 
null).select(context);
+               List<DataRow> objects = 
ObjectSelect.dataRowQuery(Artist.class).select(context);
 
                assertNotNull(objects);
                assertEquals(7, objects.size());
@@ -359,7 +359,7 @@ public class DataContextIT {
 
                createSingleArtistDataSet();
 
-               ObjectSelect<Painting> query = 
ObjectSelect.query(Painting.class, ExpressionFactory.exp("db:PAINTING_ID = 1"));
+               ObjectSelect<Painting> query = 
ObjectSelect.query(Painting.class).where(ExpressionFactory.exp("db:PAINTING_ID 
= 1"));
 
                assertEquals(0, query.select(context).size());
 
@@ -494,7 +494,7 @@ public class DataContextIT {
        public void commitChangesRO2() throws Exception {
                createArtistsDataSet();
 
-               ROArtist a1 = ObjectSelect.query(ROArtist.class, 
Artist.ARTIST_NAME.eq("artist1")).selectOne(context);
+               ROArtist a1 = 
ObjectSelect.query(ROArtist.class).where(Artist.ARTIST_NAME.eq("artist1")).selectOne(context);
                a1.writeProperty(ROArtist.ARTIST_NAME.getName(), "abc");
 
                assertThrows(Exception.class, context::commitChanges);
@@ -505,7 +505,7 @@ public class DataContextIT {
 
                createArtistsDataSet();
 
-               ROArtist a1 = ObjectSelect.query(ROArtist.class, 
Artist.ARTIST_NAME.eq("artist1")).selectOne(context);
+               ROArtist a1 = 
ObjectSelect.query(ROArtist.class).where(Artist.ARTIST_NAME.eq("artist1")).selectOne(context);
                context.deleteObjects(a1);
 
                assertThrows(Exception.class, context::commitChanges);
@@ -515,7 +515,7 @@ public class DataContextIT {
        public void commitChangesRO4() throws Exception {
                createArtistsDataSet();
 
-               ROArtist a1 = ObjectSelect.query(ROArtist.class, 
Artist.ARTIST_NAME.eq("artist1")).selectOne(context);
+               ROArtist a1 = 
ObjectSelect.query(ROArtist.class).where(Artist.ARTIST_NAME.eq("artist1")).selectOne(context);
 
                Painting painting = context.newObject(Painting.class);
                painting.setPaintingTitle("paint");
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
index be79d238b..a9859a4c4 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
@@ -127,13 +127,16 @@ public class QuotedIdentifiersIT {
         List<Quote_Person> objects4 = 
ObjectSelect.query(Quote_Person.class).select(env.context());
         assertEquals(2, objects4.size());
 
-        List<Quote_Person> objects5 = ObjectSelect.query(Quote_Person.class, 
Quote_Person.SALARY.eq(100)).select(env.context());
+        List<Quote_Person> objects5 = ObjectSelect.query(Quote_Person.class)
+                .where(Quote_Person.SALARY.eq(100)).select(env.context());
         assertEquals(1, objects5.size());
 
-        List<Quote_Person> objects6 =ObjectSelect.query(Quote_Person.class, 
Quote_Person.GROUP.eq("107324")).select(env.context());
+        List<Quote_Person> objects6 =ObjectSelect.query(Quote_Person.class)
+                .where(Quote_Person.GROUP.eq("107324")).select(env.context());
         assertEquals(1, objects6.size());
 
-        List<QuoteAdress> objects7 = ObjectSelect.query(QuoteAdress.class, 
QuoteAdress.GROUP.eq("324")).select(env.context());
+        List<QuoteAdress> objects7 = ObjectSelect.query(QuoteAdress.class)
+                .where(QuoteAdress.GROUP.eq("324")).select(env.context());
         assertEquals(1, objects7.size());
 
         ObjectIdQuery queryObjectId = new 
ObjectIdQuery(ObjectId.of("QuoteAdress", QuoteAdress.GROUP.getName(), "324"));
@@ -145,7 +148,8 @@ public class QuotedIdentifiersIT {
         List objects9 = env.context().performQuery(queryObjectId2);
         assertEquals(1, objects9.size());
 
-        Quote_Person quote_Person2 = ObjectSelect.query(Quote_Person.class, 
Quote_Person.NAME.eq("Name")).selectOne(env.context());
+        Quote_Person quote_Person2 = ObjectSelect.query(Quote_Person.class)
+                .where(Quote_Person.NAME.eq("Name")).selectOne(env.context());
 
         RelationshipQuery relationshipQuery = new 
RelationshipQuery(quote_Person2.getObjectId(), "address_Rel");
         List objects10 = env.context().performQuery(relationshipQuery);
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
index 178e66381..f5f499d94 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
@@ -109,11 +109,11 @@ public class SimpleIdIncrementalFaultListDataRowsIT {
 
     @Test
     public void indexOf1() {
-        List<DataRow> artists = ObjectSelect.dataRowQuery(Artist.class, 
Artist.ARTIST_NAME.eq("artist20")).select(context);
+        List<DataRow> artists = 
ObjectSelect.dataRowQuery(Artist.class).where(Artist.ARTIST_NAME.eq("artist20")).select(context);
 
         assertEquals(1, artists.size());
 
-        DataRow row = artists.get(0);
+        DataRow row = artists.getFirst();
         assertEquals(19, list.indexOf(row));
 
         DataRow clone = new DataRow(row);
@@ -129,7 +129,7 @@ public class SimpleIdIncrementalFaultListDataRowsIT {
         // resolve first page
         list.get(0);
 
-        List<DataRow> artists =  ObjectSelect.dataRowQuery(Artist.class, 
Artist.ARTIST_NAME.eq("artist2")).select(context);
+        List<DataRow> artists =  
ObjectSelect.dataRowQuery(Artist.class).where(Artist.ARTIST_NAME.eq("artist2")).select(context);
 
         assertEquals(1, artists.size());
 
@@ -146,7 +146,7 @@ public class SimpleIdIncrementalFaultListDataRowsIT {
         // resolve first page
         list.get(0);
 
-        List<DataRow> artists = ObjectSelect.dataRowQuery(Artist.class, 
Artist.ARTIST_NAME.eq("artist3")).select(context);
+        List<DataRow> artists = 
ObjectSelect.dataRowQuery(Artist.class).where(Artist.ARTIST_NAME.eq("artist3")).select(context);
 
         assertEquals(1, artists.size());
 
@@ -159,7 +159,7 @@ public class SimpleIdIncrementalFaultListDataRowsIT {
 
     @Test
     public void lastIndexOf2() {
-        List<DataRow> artists = ObjectSelect.dataRowQuery(Artist.class, 
Artist.ARTIST_NAME.eq("artist20")).select(context);
+        List<DataRow> artists = 
ObjectSelect.dataRowQuery(Artist.class).where(Artist.ARTIST_NAME.eq("artist20")).select(context);
 
         assertEquals(1, artists.size());
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DbAdapterDelegatedSelectTranslatorIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DbAdapterDelegatedSelectTranslatorIT.java
index 98e17375d..d272e7d88 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DbAdapterDelegatedSelectTranslatorIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DbAdapterDelegatedSelectTranslatorIT.java
@@ -58,7 +58,7 @@ public class DbAdapterDelegatedSelectTranslatorIT {
        @Test
        public void createSqlString1() throws Exception {
                // query with qualifier and ordering
-               ObjectSelect<Artist> q = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.like("a%"))
+               ObjectSelect<Artist> q = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.like("a%"))
                                .orderBy(Artist.DATE_OF_BIRTH.asc());
 
                TranslatedSelect defaultSelectTranslator = new 
DbAdapterDelegatedSelectTranslator().translate(q, env.dataNode().getAdapter(), 
env.dataNode().getEntityResolver());
@@ -152,7 +152,7 @@ public class DbAdapterDelegatedSelectTranslatorIT {
        @Test
        public void dbEntityQualifier_FlattenedRel() throws Exception {
 
-               ObjectSelect<Artist> q = ObjectSelect.query(Artist.class, 
Artist.GROUP_ARRAY.dot(ArtGroup.NAME).eq("bar"));
+               ObjectSelect<Artist> q = 
ObjectSelect.query(Artist.class).where(Artist.GROUP_ARRAY.dot(ArtGroup.NAME).eq("bar"));
 
                final DbEntity entity = 
env.context().getEntityResolver().getDbEntity("ARTIST");
                final DbEntity middleEntity = 
env.context().getEntityResolver().getDbEntity("ARTIST_GROUP");
@@ -187,7 +187,8 @@ public class DbAdapterDelegatedSelectTranslatorIT {
        @Test
        public void dbEntityQualifier_RelatedMatch() throws Exception {
 
-               ObjectSelect<Painting> q = ObjectSelect.query(Painting.class, 
Painting.TO_ARTIST.dot(Artist.ARTIST_NAME).eq("foo"));
+               ObjectSelect<Painting> q = ObjectSelect.query(Painting.class)
+                               
.where(Painting.TO_ARTIST.dot(Artist.ARTIST_NAME).eq("foo"));
 
                final DbEntity entity = 
env.context().getEntityResolver().getDbEntity("ARTIST");
                final DbEntity middleEntity = 
env.context().getEntityResolver().getDbEntity("ARTIST_GROUP");
@@ -359,7 +360,8 @@ public class DbAdapterDelegatedSelectTranslatorIT {
        @Test
        public void createSqlString9() throws Exception {
                // query for a compound ObjEntity with qualifier
-               ObjectSelect<CompoundPainting> q = 
ObjectSelect.query(CompoundPainting.class, 
CompoundPainting.ARTIST_NAME.like("a%"));
+               ObjectSelect<CompoundPainting> q = 
ObjectSelect.query(CompoundPainting.class)
+                               .where(CompoundPainting.ARTIST_NAME.like("a%"));
 
                String sql = new 
DbAdapterDelegatedSelectTranslator().translate(q, env.dataNode().getAdapter(), 
env.dataNode().getEntityResolver()).sql();
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DefaultObjectSelectTranslatorIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DefaultObjectSelectTranslatorIT.java
index 3b0f172d3..5b7d6bcd9 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DefaultObjectSelectTranslatorIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DefaultObjectSelectTranslatorIT.java
@@ -58,7 +58,7 @@ public class DefaultObjectSelectTranslatorIT {
 
     @Test
     public void selectWithComplexWhere() {
-        ObjectSelect<Artist> select = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.eq("artist")
+        ObjectSelect<Artist> select = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("artist")
                 
.andExp(Artist.PAINTING_ARRAY.dot(Painting.PAINTING_TITLE).eq("painting")));
 
         TranslatedSelect translator = new 
DbAdapterDelegatedSelectTranslator().translate(select, 
env.dataNode().getAdapter(), env.context().getEntityResolver());
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorExistExpressionIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorExistExpressionIT.java
index 45531b527..d1cbf5321 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorExistExpressionIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorExistExpressionIT.java
@@ -44,7 +44,7 @@ public class QualifierTranslatorExistExpressionIT {
                 .exp("paintingArray")
                 .exists();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -63,7 +63,7 @@ public class QualifierTranslatorExistExpressionIT {
     public void existsSimplePathParsed() {
         Expression exp = ExpressionFactory
                 .exp("exists paintingArray");
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -84,7 +84,7 @@ public class QualifierTranslatorExistExpressionIT {
                 .exp("artistName")
                 .exists();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -102,7 +102,7 @@ public class QualifierTranslatorExistExpressionIT {
                 .exp("paintingArray.paintingTitle")
                 .exists();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -123,7 +123,7 @@ public class QualifierTranslatorExistExpressionIT {
                 .exp("paintingArray.toGallery")
                 .exists();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -144,7 +144,7 @@ public class QualifierTranslatorExistExpressionIT {
                 .exp("groupArray.childGroupsArray")
                 .exists();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -167,7 +167,7 @@ public class QualifierTranslatorExistExpressionIT {
                 .exp("paintingArray.paintingTitle = 'test'")
                 .exists();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -189,7 +189,7 @@ public class QualifierTranslatorExistExpressionIT {
                         "or paintingArray.paintingTitle = 'test2'")
                 .exists();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -211,7 +211,7 @@ public class QualifierTranslatorExistExpressionIT {
                 .exp("exists (paintingArray.paintingTitle = 'test' " +
                         "or paintingArray.paintingTitle = 'test2')");
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -234,7 +234,7 @@ public class QualifierTranslatorExistExpressionIT {
                         "or paintingArray.paintingTitle = 'test2') and 
groupArray.name = 'test'")
                 .exists();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -261,7 +261,7 @@ public class QualifierTranslatorExistExpressionIT {
                         "and (groupArray.name = 'test' or 
paintingArray.paintingTitle = 'test2')")
                 .exists();
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
@@ -294,7 +294,7 @@ public class QualifierTranslatorExistExpressionIT {
                 .exp("(length(paintingArray.paintingTitle) in (1, 2, 3)) " +
                     "or (length(groupArray.name) < 10)")
                 .exists();
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, exp);
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(exp);
 
         SelectTranslatorContext context
                 = new SelectTranslatorContext(query, 
env.runtime().getDataDomain().getDefaultNode().getAdapter(), 
env.context().getEntityResolver(), null);
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java 
b/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
index 3c5ca544c..4d8a9df3d 100644
--- a/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
@@ -105,11 +105,11 @@ public class ExpressionFactoryIT {
         env.context().commitChanges();
 
         Expression ex1 = ExpressionFactory.likeIgnoreCaseDbExp("ARTIST_NAME", 
"A*_1", '*');
-        List<Artist> artists = ObjectSelect.query(Artist.class, 
ex1).select(env.context());
+        List<Artist> artists = 
ObjectSelect.query(Artist.class).where(ex1).select(env.context());
         assertEquals(1, artists.size());
 
         Expression ex2 = ExpressionFactory.likeExp("artistName", "A*_2", '*');
-        artists = ObjectSelect.query(Artist.class, ex2).select(env.context());
+        artists = 
ObjectSelect.query(Artist.class).where(ex2).select(env.context());
         assertEquals(1, artists.size());
     }
 
@@ -127,11 +127,11 @@ public class ExpressionFactoryIT {
         env.context().commitChanges();
 
         Expression ex1 = 
ExpressionFactory.containsExp(Artist.ARTIST_NAME.getName(), "A_1");
-        List<Artist> artists = ObjectSelect.query(Artist.class, 
ex1).select(env.context());
+        List<Artist> artists = 
ObjectSelect.query(Artist.class).where(ex1).select(env.context());
         assertEquals(1, artists.size());
 
         Expression ex2 = 
ExpressionFactory.containsExp(Artist.ARTIST_NAME.getName(), "A%2");
-        artists = ObjectSelect.query(Artist.class, ex2).select(env.context());
+        artists = 
ObjectSelect.query(Artist.class).where(ex2).select(env.context());
         assertEquals(1, artists.size());
     }
 
@@ -264,18 +264,18 @@ public class ExpressionFactoryIT {
 
         // First version via expression string
         Expression exp1 = exp("length(substring(artistName, 1, 3)) > 
length(trim(artistName))");
-        res = ObjectSelect.query(Artist.class, exp1).select(env.context());
+        res = 
ObjectSelect.query(Artist.class).where(exp1).select(env.context());
         assertEquals(0, res.size());
 
         // Second version via FunctionExpressionFactory API
         Expression exp2 = 
greaterExp(lengthExp(substringExp(Artist.ARTIST_NAME.getExpression(), 1, 3)),
                                      
lengthExp(trimExp(Artist.ARTIST_NAME.getExpression())));
-        res = ObjectSelect.query(Artist.class, exp2).select(env.context());
+        res = 
ObjectSelect.query(Artist.class).where(exp2).select(env.context());
         assertEquals(0, res.size());
 
         // Third version via Property API
         Expression exp3 = Artist.ARTIST_NAME.substring(1, 
3).length().gt(Artist.ARTIST_NAME.trim().length());
-        res = ObjectSelect.query(Artist.class, exp3).select(env.context());
+        res = 
ObjectSelect.query(Artist.class).where(exp3).select(env.context());
         assertEquals(0, res.size());
 
         // Check that all expressions are equal
diff --git a/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionIT.java 
b/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
index 4475619d1..3c1466948 100644
--- a/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
@@ -66,7 +66,7 @@ public class ExpressionIT {
 
                assertNotSame(context2, env.context());
 
-               List<Painting> objects = ObjectSelect.query(Painting.class, 
Painting.TO_ARTIST.eq(a1)).select(context2);
+               List<Painting> objects = 
ObjectSelect.query(Painting.class).where(Painting.TO_ARTIST.eq(a1)).select(context2);
                assertEquals(1, objects.size());
 
                // 2 same objects in different contexts
@@ -120,7 +120,8 @@ public class ExpressionIT {
 
         List<Artist> artists;
                try {
-            artists = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.lt((String) null)).select(env.context());
+            artists = ObjectSelect.query(Artist.class)
+                    .where(Artist.ARTIST_NAME.lt((String) 
null)).select(env.context());
         } catch (CayenneRuntimeException ex) {
                    if(env.testDbAdapter().supportsNullComparison()) {
                        throw ex;
@@ -140,7 +141,8 @@ public class ExpressionIT {
 
         List<Artist> artists;
         try {
-            artists = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.in("Picasso", (String) null)).select(env.context());
+            artists = ObjectSelect.query(Artist.class)
+                    .where(Artist.ARTIST_NAME.in("Picasso", (String) 
null)).select(env.context());
         } catch (CayenneRuntimeException ex) {
             if(env.testDbAdapter().supportsNullComparison()) {
                 throw ex;
@@ -157,7 +159,7 @@ public class ExpressionIT {
                a1.setArtistName("Picasso");
                env.context().commitChanges();
 
-               List<Artist> artists = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.in(List.of())).select(env.context());
+               List<Artist> artists = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.in(List.of())).select(env.context());
                assertTrue(artists.isEmpty());
        }
 
@@ -168,7 +170,7 @@ public class ExpressionIT {
                env.context().commitChanges();
 
                ASTIn in = new ASTIn((SimpleNode) 
Artist.ARTIST_NAME.getExpression(), new ASTList(List.of()));
-               List<Artist> artists = ObjectSelect.query(Artist.class, 
in).select(env.context());
+               List<Artist> artists = 
ObjectSelect.query(Artist.class).where(in).select(env.context());
                assertTrue(artists.isEmpty());
        }
 
@@ -179,7 +181,7 @@ public class ExpressionIT {
                env.context().commitChanges();
 
                ASTNotIn notIn = new ASTNotIn((SimpleNode) 
Artist.ARTIST_NAME.getExpression(), new ASTList(List.of()));
-               List<Artist> artists = ObjectSelect.query(Artist.class, 
notIn).select(env.context());
+               List<Artist> artists = 
ObjectSelect.query(Artist.class).where(notIn).select(env.context());
                assertEquals(1, artists.size());
                assertEquals("Picasso", artists.get(0).getArtistName());
        }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java 
b/cayenne/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
index f41a299b1..f81414cd8 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
@@ -71,7 +71,7 @@ public class ParsedExpQualifierCompatIT {
     }
 
     private <T> List<T> execute(Class<T> root, Expression qualifier, String 
prefetch) {
-        ObjectSelect<T> query = ObjectSelect.query(root, qualifier);
+        ObjectSelect<T> query = ObjectSelect.query(root).where(qualifier);
         if (prefetch != null) {
             query.prefetch(prefetch, 
PrefetchTreeNode.DISJOINT_PREFETCH_SEMANTICS);
         }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExistsIT.java 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExistsIT.java
index 3dea68370..fff58e9fb 100644
--- a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExistsIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExistsIT.java
@@ -107,7 +107,7 @@ public class ASTExistsIT {
     }
 
     private void doEvaluateNoQuery(Expression exp) {
-        List<Artist> artistSelected = ObjectSelect.query(Artist.class, exp)
+        List<Artist> artistSelected = 
ObjectSelect.query(Artist.class).where(exp)
                 .orderBy(Artist.ARTIST_ID_PK_PROPERTY.asc())
                 .select(env.context());
 
@@ -125,7 +125,7 @@ public class ASTExistsIT {
     }
 
     private void doEvaluateWithQuery(Expression exp) {
-        List<Artist> artistSelected = ObjectSelect.query(Artist.class, 
exp).select(env.context());
+        List<Artist> artistSelected = 
ObjectSelect.query(Artist.class).where(exp).select(env.context());
 
         List<Artist> artists = ObjectSelect.query(Artist.class)
                 .prefetch(Artist.PAINTING_ARRAY.disjoint())
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExtractIT.java 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExtractIT.java
index 60d16f2bb..5e7d48262 100644
--- a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExtractIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExtractIT.java
@@ -82,7 +82,7 @@ public class ASTExtractIT {
         Expression exp = ExpressionFactory.exp("year(dateColumn) = 2015");
 
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.YEAR)) {
@@ -96,7 +96,7 @@ public class ASTExtractIT {
         Expression exp = ExpressionFactory.exp("month(dateColumn) = 3");
 
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.MONTH)) {
@@ -110,7 +110,7 @@ public class ASTExtractIT {
         // 13 or 14 depends of first day in week in current db
         Expression exp = ExpressionFactory.exp("week(dateColumn) in (13, 14)");
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.WEEK)) {
@@ -124,7 +124,7 @@ public class ASTExtractIT {
         // day can start from 0
         Expression exp = ExpressionFactory.exp("dayOfYear(dateColumn) in (59, 
58)");
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_YEAR)) {
@@ -152,7 +152,7 @@ public class ASTExtractIT {
     public void day() {
         Expression exp = ExpressionFactory.exp("day(dateColumn) = 28");
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY)) 
{
@@ -165,7 +165,7 @@ public class ASTExtractIT {
     public void dayOfMonth() {
         Expression exp = ExpressionFactory.exp("dayOfMonth(dateColumn) = 28");
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_MONTH)) {
@@ -178,7 +178,7 @@ public class ASTExtractIT {
     public void dayOfWeek() {
         Expression exp = ExpressionFactory.exp("dayOfWeek(dateColumn) in (2, 
3)");
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_WEEK)) {
@@ -191,7 +191,7 @@ public class ASTExtractIT {
     public void hour() {
         Expression exp = ExpressionFactory.exp("hour(timestampColumn) = 23");
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.HOUR)) {
@@ -204,7 +204,7 @@ public class ASTExtractIT {
     public void minute() {
         Expression exp = ExpressionFactory.exp("minute(timestampColumn) = 59");
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.MINUTE)) {
@@ -217,7 +217,7 @@ public class ASTExtractIT {
     public void second() {
         Expression exp = ExpressionFactory.exp("second(timestampColumn) = 39");
         try {
-            long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
+            long res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
             
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.SECOND)) {
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallDateIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallDateIT.java
index 2718a0352..dfd01182d 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallDateIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallDateIT.java
@@ -75,11 +75,11 @@ public class ASTFunctionCallDateIT {
     @Test
     public void currentDate() throws Exception {
         Expression exp = ExpressionFactory.greaterOrEqualExp("dateColumn", new 
ASTCurrentDate());
-        DateTestEntity res1 = ObjectSelect.query(DateTestEntity.class, 
exp).selectOne(env.context());
+        DateTestEntity res1 = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectOne(env.context());
         assertNotNull(res1);
 
         Expression exp2 = ExpressionFactory.lessExp("dateColumn", new 
ASTCurrentDate());
-        DateTestEntity res2 = ObjectSelect.query(DateTestEntity.class, 
exp2).selectOne(env.context());
+        DateTestEntity res2 = 
ObjectSelect.query(DateTestEntity.class).where(exp2).selectOne(env.context());
         assertNotNull(res2);
 
         assertNotEquals(res1, res2);
@@ -88,7 +88,7 @@ public class ASTFunctionCallDateIT {
     @Test
     public void currentTime() throws Exception {
         Expression exp = ExpressionFactory.greaterOrEqualExp("timeColumn", new 
ASTCurrentTime());
-        List<DateTestEntity> res = ObjectSelect.query(DateTestEntity.class, 
exp).select(env.context());
+        List<DateTestEntity> res = 
ObjectSelect.query(DateTestEntity.class).where(exp).select(env.context());
         if(!testDbAdapter.supportsTimeSqlType()) {
             // check only that query is executed without error
             // result will be invalid most likely as DB doesn't support TIME 
data type
@@ -98,7 +98,7 @@ public class ASTFunctionCallDateIT {
         DateTestEntity res1 = res.get(0);
 
         Expression exp2 = ExpressionFactory.lessExp("timeColumn", new 
ASTCurrentTime());
-        DateTestEntity res2 = ObjectSelect.query(DateTestEntity.class, 
exp2).selectOne(env.context());
+        DateTestEntity res2 = 
ObjectSelect.query(DateTestEntity.class).where(exp2).selectOne(env.context());
         assertNotNull(res2);
 
         assertNotEquals(res1, res2);
@@ -107,11 +107,11 @@ public class ASTFunctionCallDateIT {
     @Test
     public void currentTimestamp() throws Exception {
         Expression exp = 
ExpressionFactory.greaterOrEqualExp("timestampColumn", new 
ASTCurrentTimestamp());
-        DateTestEntity res1 = ObjectSelect.query(DateTestEntity.class, 
exp).selectOne(env.context());
+        DateTestEntity res1 = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectOne(env.context());
         assertNotNull(res1);
 
         Expression exp2 = ExpressionFactory.lessExp("timestampColumn", new 
ASTCurrentTimestamp());
-        DateTestEntity res2 = ObjectSelect.query(DateTestEntity.class, 
exp2).selectOne(env.context());
+        DateTestEntity res2 = 
ObjectSelect.query(DateTestEntity.class).where(exp2).selectOne(env.context());
         assertNotNull(res2);
 
         assertNotEquals(res1, res2);
@@ -120,14 +120,14 @@ public class ASTFunctionCallDateIT {
     @Test
     public void aSTCurrentDateParse() {
         Expression exp = ExpressionFactory.exp("dateColumn > currentDate()");
-        DateTestEntity res = ObjectSelect.query(DateTestEntity.class, 
exp).selectOne(env.context());
+        DateTestEntity res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectOne(env.context());
         assertNotNull(res);
     }
 
     @Test
     public void aSTCurrentTimeParse() {
         Expression exp = ExpressionFactory.exp("timeColumn > currentTime()");
-        DateTestEntity res = ObjectSelect.query(DateTestEntity.class, 
exp).selectOne(env.context());
+        DateTestEntity res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectOne(env.context());
         if(!testDbAdapter.supportsTimeSqlType()) {
             return;
         }
@@ -137,7 +137,7 @@ public class ASTFunctionCallDateIT {
     @Test
     public void aSTCurrentTimestampParse() {
         Expression exp = ExpressionFactory.exp("timestampColumn > now()");
-        DateTestEntity res = ObjectSelect.query(DateTestEntity.class, 
exp).selectOne(env.context());
+        DateTestEntity res = 
ObjectSelect.query(DateTestEntity.class).where(exp).selectOne(env.context());
         assertNotNull(res);
     }
 }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTNotExistsIT.java 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTNotExistsIT.java
index 842349119..7c2686d24 100644
--- a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTNotExistsIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTNotExistsIT.java
@@ -110,7 +110,7 @@ public class ASTNotExistsIT {
     }
 
     private void doEvaluateNoQuery(Expression exp) {
-        List<Artist> artistSelected = ObjectSelect.query(Artist.class, exp)
+        List<Artist> artistSelected = 
ObjectSelect.query(Artist.class).where(exp)
                 .orderBy(Artist.ARTIST_ID_PK_PROPERTY.asc())
                 .select(env.context());
 
@@ -128,7 +128,7 @@ public class ASTNotExistsIT {
     }
 
     private void doEvaluateWithQuery(Expression exp) {
-        List<Artist> artistSelected = ObjectSelect.query(Artist.class, 
exp).select(env.context());
+        List<Artist> artistSelected = 
ObjectSelect.query(Artist.class).where(exp).select(env.context());
 
         List<Artist> artists = ObjectSelect.query(Artist.class)
                 .prefetch(Artist.PAINTING_ARRAY.disjoint())
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluationIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluationIT.java
index eb563a29f..8452d2f64 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluationIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluationIT.java
@@ -370,7 +370,7 @@ public class ExpressionEvaluationIT {
     private void compareSqlAndEval(Expression exp, int expectedCount) {
         // apply exp in SQL
         Ordering ordering = new Ordering("db:ARTIST_ID");
-        List<Artist> filteredInSQL = ObjectSelect.query(Artist.class, 
exp).orderBy(ordering).select(context);
+        List<Artist> filteredInSQL = 
ObjectSelect.query(Artist.class).where(exp).orderBy(ordering).select(context);
         // apply exp to in-memory collection
         List<Artist> filteredInMemory = exp.filterObjects(
                 
ObjectSelect.query(Artist.class).prefetch(Artist.PAINTING_ARRAY.disjoint()).select(context)
diff --git a/cayenne/src/test/java/org/apache/cayenne/jira/CAY_115IT.java 
b/cayenne/src/test/java/org/apache/cayenne/jira/CAY_115IT.java
index b803127c0..291700c34 100644
--- a/cayenne/src/test/java/org/apache/cayenne/jira/CAY_115IT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/jira/CAY_115IT.java
@@ -103,7 +103,7 @@ public class CAY_115IT {
         createDistinctClobFetchWithToManyJoin();
 
         Expression qual = ExpressionFactory.exp("details.name like 'cd%'");
-        List<?> result = ObjectSelect.query(ClobMaster.class, 
qual).select(context);
+        List<?> result = 
ObjectSelect.query(ClobMaster.class).where(qual).select(context);
 
         assertEquals(3, result.size());
     }
diff --git a/cayenne/src/test/java/org/apache/cayenne/jira/CAY_194IT.java 
b/cayenne/src/test/java/org/apache/cayenne/jira/CAY_194IT.java
index 5c4d0da00..820bbd79b 100644
--- a/cayenne/src/test/java/org/apache/cayenne/jira/CAY_194IT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/jira/CAY_194IT.java
@@ -71,11 +71,13 @@ public class CAY_194IT {
 
         context.commitChanges();
 
-        List<?> parents = ObjectSelect.query(ReflexiveAndToOne.class, 
ReflexiveAndToOne.CHILDREN.contains(o2)).select(context);
+        List<?> parents = ObjectSelect.query(ReflexiveAndToOne.class)
+                
.where(ReflexiveAndToOne.CHILDREN.contains(o2)).select(context);
         assertEquals(1, parents.size());
         assertSame(o1, parents.get(0));
 
-        parents = ObjectSelect.query(ReflexiveAndToOne.class, 
ReflexiveAndToOne.CHILDREN.contains(o1)).select(context);
+        parents = ObjectSelect.query(ReflexiveAndToOne.class)
+                
.where(ReflexiveAndToOne.CHILDREN.contains(o1)).select(context);
         assertEquals(0, parents.size());
     }
 
@@ -93,7 +95,8 @@ public class CAY_194IT {
 
         context.commitChanges();
 
-        List<ReflexiveAndToOne> children = 
ObjectSelect.query(ReflexiveAndToOne.class, 
ReflexiveAndToOne.TO_PARENT.eq(o1)).select(context);
+        List<ReflexiveAndToOne> children = 
ObjectSelect.query(ReflexiveAndToOne.class)
+                .where(ReflexiveAndToOne.TO_PARENT.eq(o1)).select(context);
         assertEquals(1, children.size());
         assertSame(o2, children.get(0));
 
diff --git a/cayenne/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
index 96f75cc6a..418639d39 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
@@ -924,7 +924,7 @@ public class ColumnSelectIT {
 
     @Test
     public void objPropertyInWhere() {
-        Artist artist = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.eq("artist1"))
+        Artist artist = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("artist1"))
                 .selectFirst(context);
         List<Painting> result = ObjectSelect.query(Painting.class)
                 .column(Painting.SELF)
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/FluentSelectPrefetchRouterActionIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/query/FluentSelectPrefetchRouterActionIT.java
index 5bf36d5bc..37b2b9654 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/query/FluentSelectPrefetchRouterActionIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/query/FluentSelectPrefetchRouterActionIT.java
@@ -41,7 +41,7 @@ public class FluentSelectPrefetchRouterActionIT {
     public void paintings1() {
         ObjEntity paintingEntity = 
env.entityResolver().getObjEntity(Painting.class);
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.eq("abc"))
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("abc"))
                 .prefetch(Artist.PAINTING_ARRAY.disjoint());
 
         FluentSelectPrefetchRouterAction action = new 
FluentSelectPrefetchRouterAction();
@@ -81,7 +81,7 @@ public class FluentSelectPrefetchRouterActionIT {
     public void galleries() {
         ObjEntity galleryEntity = 
env.entityResolver().getObjEntity(Gallery.class);
 
-        ObjectSelect<Artist> query = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.eq("abc"))
+        ObjectSelect<Artist> query = 
ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("abc"))
                 
.prefetch(Artist.PAINTING_ARRAY.dot(Painting.TO_GALLERY).disjoint());
         FluentSelectPrefetchRouterAction action = new 
FluentSelectPrefetchRouterAction();
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/FluentSelectPrefetchRouterActionQualifiedEntityIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/query/FluentSelectPrefetchRouterActionQualifiedEntityIT.java
index 8a3af0f79..902cf0d63 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/query/FluentSelectPrefetchRouterActionQualifiedEntityIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/query/FluentSelectPrefetchRouterActionQualifiedEntityIT.java
@@ -44,7 +44,7 @@ public class 
FluentSelectPrefetchRouterActionQualifiedEntityIT extends PeopleTes
     @Test
     public void prefetchEmployee() {
         ObjEntity departmentEntity = resolver.getObjEntity(Department.class);
-        ObjectSelect<Employee> query = ObjectSelect.query(Employee.class, 
Employee.NAME.eq("abc"))
+        ObjectSelect<Employee> query = 
ObjectSelect.query(Employee.class).where(Employee.NAME.eq("abc"))
                 .prefetch(Employee.TO_DEPARTMENT.disjoint());
 
         FluentSelectPrefetchRouterAction action = new 
FluentSelectPrefetchRouterAction();
@@ -64,7 +64,7 @@ public class 
FluentSelectPrefetchRouterActionQualifiedEntityIT extends PeopleTes
     public void prefetchManager() {
         ObjEntity departmentEntity = resolver.getObjEntity(Department.class);
 
-        ObjectSelect<Manager> query = ObjectSelect.query(Manager.class, 
Employee.NAME.eq("abc"))
+        ObjectSelect<Manager> query = 
ObjectSelect.query(Manager.class).where(Employee.NAME.eq("abc"))
                 .prefetch(Manager.TO_DEPARTMENT.disjoint());
 
         FluentSelectPrefetchRouterAction action = new 
FluentSelectPrefetchRouterAction();
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java 
b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
index 2808b9d27..8c59c0fcd 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
@@ -59,7 +59,7 @@ public class ObjectSelectTest {
 
        @Test
        public void query_RootType_WithQualifier() {
-               ObjectSelect<Artist> q = ObjectSelect.query(Artist.class, 
ExpressionFactory.matchExp("a", "A"));
+               ObjectSelect<Artist> q = 
ObjectSelect.query(Artist.class).where(ExpressionFactory.matchExp("a", "A"));
                assertNotNull(q);
                assertEquals("a = \"A\"", q.getWhere().toString());
                assertFalse(q.isFetchingDataRows());
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_SubqueryIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_SubqueryIT.java
index 85d6f74f5..a1421295d 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_SubqueryIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_SubqueryIT.java
@@ -65,7 +65,8 @@ public class ObjectSelect_SubqueryIT {
     @Test
     public void selectQuery_simpleExists() {
         long count = ObjectSelect.query(Artist.class)
-                
.where(ExpressionFactory.exists(ObjectSelect.query(Painting.class, 
Painting.PAINTING_TITLE.like("painting%"))))
+                
.where(ExpressionFactory.exists(ObjectSelect.query(Painting.class)
+                        .where(Painting.PAINTING_TITLE.like("painting%"))))
                 .selectCount(context);
         assertEquals(20L, count);
     }
@@ -122,7 +123,7 @@ public class ObjectSelect_SubqueryIT {
         Expression exp = Painting.PAINTING_TITLE.like("painting%")
                 
.andExp(ExpressionFactory.exists(ObjectSelect.query(Gallery.class)));
         long count = ObjectSelect.query(Artist.class)
-                
.where(ExpressionFactory.exists(ObjectSelect.query(Painting.class, exp)))
+                
.where(ExpressionFactory.exists(ObjectSelect.query(Painting.class).where(exp)))
                 .selectCount(context);
         assertEquals(20L, count);
     }
@@ -133,11 +134,11 @@ public class ObjectSelect_SubqueryIT {
                 .andExp(Painting.TO_GALLERY.enclosing().eq(Gallery.SELF));
 
         Expression exp = Painting.PAINTING_TITLE.like("painting%")
-                
.andExp(ExpressionFactory.exists(ObjectSelect.query(Gallery.class, 
deepNestedExp)))
+                
.andExp(ExpressionFactory.exists(ObjectSelect.query(Gallery.class).where(deepNestedExp)))
                 .andExp(Painting.TO_ARTIST.eq(Artist.SELF.enclosing()));
 
         long count = ObjectSelect.query(Artist.class)
-                
.where(ExpressionFactory.exists(ObjectSelect.query(Painting.class, exp)))
+                
.where(ExpressionFactory.exists(ObjectSelect.query(Painting.class).where(exp)))
                 .selectCount(context);
         assertEquals(5L, count);
     }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
index 0c14c8c25..b5816c383 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
@@ -70,7 +70,7 @@ public class SelectQueryReturnTypesIT {
         greater.setOperand(0, left);
         greater.setOperand(1, right);
 
-        List<ReturnTypesMap1> objects = 
ObjectSelect.query(ReturnTypesMap1.class, greater).select(env.context());
+        List<ReturnTypesMap1> objects = 
ObjectSelect.query(ReturnTypesMap1.class).where(greater).select(env.context());
         assertEquals(2, objects.size());
     }
 
@@ -91,7 +91,7 @@ public class SelectQueryReturnTypesIT {
         equal.setOperand(0, left);
         equal.setOperand(1, right);
 
-        List<ReturnTypesMap1> objects = 
ObjectSelect.query(ReturnTypesMap1.class, equal).select(env.context());
+        List<ReturnTypesMap1> objects = 
ObjectSelect.query(ReturnTypesMap1.class).where(equal).select(env.context());
         assertEquals(2, objects.size());
     }
 
@@ -112,7 +112,7 @@ public class SelectQueryReturnTypesIT {
         equal.setOperand(0, left);
         equal.setOperand(1, right);
 
-        List<ReturnTypesMap1> objects = 
ObjectSelect.query(ReturnTypesMap1.class, equal).select(env.context());
+        List<ReturnTypesMap1> objects = 
ObjectSelect.query(ReturnTypesMap1.class).where(equal).select(env.context());
         assertEquals(3, objects.size());
     }
 
@@ -133,7 +133,7 @@ public class SelectQueryReturnTypesIT {
         equal.setOperand(0, left);
         equal.setOperand(1, right);
 
-        List<ReturnTypesMap1> objects = 
ObjectSelect.query(ReturnTypesMap1.class, equal).select(env.context());
+        List<ReturnTypesMap1> objects = 
ObjectSelect.query(ReturnTypesMap1.class).where(equal).select(env.context());
         assertEquals(1, objects.size());
         assertEquals(4, objects.get(0).getIntegerColumn().intValue());
     }

Reply via email to