如何在没有 queryBuilder 的情况下在 ORMLite 中定义位置

How to define where in ORMLite without queryBuilder

当使用 ORMLite 时可以不使用 queryBuilder 来定义 Where 对象吗?我想定义很多 where 查询,然后在获取 db 的 queryBuilder 时应用我的约束。

所以,我会有这样的东西。首先创建查询:

    ...
    myQ1 = new MyQuery ({something}...where.ge("Date", lowValue).and().le("Date", hiValue))
    myQ2 = new MyQuery ({something}...where.eq("Date", dateValue))
    ...

其中

public class MyQuery {
    Where where;

    // Constructor
    public MyQuery1 (Where dbWhere) {
        this.where = dbWhere;
    }
...

因此,根据我的标准,我稍后可以调用不同的查询:myQ1 或 myQ2:

    QueryBuilder<Object, String> queryBuilder = dao.queryBuilder();

    Where mainWhere = queryBuilder.where();

    ...case....
        mainWhere.add(myQ1.where);
    ...
        mainWhere.add(myQ2.where);

...

所以,我的问题是如何正确写:

new MyQuery1 ( /* something... */
    where.ge("Date", lowValue).and().le("Date", hiValue))

所有其他部分已经工作。如果我尝试 new Where() 它需要一个 queryBuilder。

当然可以,它会像这样工作:

    Where<YourClass, YourId> where = qB.where();
    where.and(firstWhere, secondWhere, otherWheres)
    qB.setWhere(where)

但请注意,如果没有 queryBuilder 实例

,您将无法创建 Where