orm - 查询生成器 dbflow 条件查询

标签 orm query-builder dbflow

如何根据特定条件构建查询。

我尝试这样做

QueryBuilder builder = SQlite.Select().from(Table)
    if(condition) {
         builder.where(something)
    }
Cursor c = builder.query;

但这是不允许的。

我必须根据我在首选项中保存的条件查询我的数据库。我用谷歌搜索并在文档中到处搜索,但找不到一个例子。 dbflow 中是否存在此功能,如果是,那么如果没有,任何其他 orm(如 greenDAO)是否具有此功能

最佳答案

可以在 DBFlow 中创建条件查询。要查询表的列,您必须将 _Table 附加到类名中,然后访问其属性。这些_Table类是在构建时生成的。

最简单的查询是这个:

SQLite.select()
      .from(YourTable.class)
      .where(YourTable_Table.id.eq(someId)
      .queryList();

您还可以在查询中使用 .and.or 添加新条件:

SQLite.select()
      .from(YourTable.class)
      .where(YourTable_Table.id.eq(someId)
      .and(YourTable_Table.name.eq(someName)
      .queryList();

为了使代码更简洁,您还可以将条件分组为条件组,如下所示:

ConditionGroup conditionGroup = ConditionGroup.clause();
conditionGroup.and(YourTable_Table.id.eq(someId);

if (someCondition) {
    conditionGroup.and(YourTable_Table.name.eq(someName);
}

return SQLite.select()
      .from(YourTable.class)
      .where(conditionGroup)
      .queryList();

关于orm - 查询生成器 dbflow 条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39323389/

相关文章:

orm - 如何向 One2many 字段中的 Many2many 字段添加多个值?Odoo 10

java - 关于oneToMany和ForeignKey的DBFlow问题

Android DBFlow 不保存对象

database - 如何从 Sequelize 中的实例中排除关联属于多?

.net - 非常复杂的 LINQ(to SQL)查询示例

php - 如何在 Laravel 中实现组合的交叉连接和内连接?

mysql - 嵌套选择查询重构并转换为 Eloquent/查询生成器

php - CodeIgniter 删除给定数组中的 where 条件和 where not

java - Android DBflow : define entity schema name

java - 如何设置@Column注释使用的精度属性?