在DBFLow中订购

时间:2016-03-28 17:42:46

标签: android database sorting dbflow

我正在尝试在我的Android项目中实现DBFlow。我已经能够创建一个表并添加行和列。我有两列,ID和名称。现在我想从表中检索名称,并按ID按降序排列。我在Github DBFlow页面中找到了这个示例语法

SQLite.select()
  .from(table)
  .where()
  .orderBy(Customer_Table.customer_id, true)
  .queryList();

SQLite.select()
    .from(table)
    .where()
    .orderBy(Customer_Table.customer_id, true)
    .orderBy(Customer_Table.name, false)
    .queryList();

但我无法根据“Customer_Table.customer_id”在该代码中的含义。当我尝试将方法orderBy()时,Android Studio建议(NameAlias nameAlias,boolean)作为参数。如何在表格中添加NameAlias?有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

在项目中实现DbFlow时,它会自动为使用@Table注释注释的每个表模型构建一个表类。

即,如果你有一个名为Customer的表,那么相应的类将是Customer_Table,如果你的表是User,那么相应的类将是User_Table。

让这成为您的客户表:

@Table
public class Customer extends BaseModel {
    @Column
    String customer_name;
}

如果您想在Customer表中使用客户名称订购结果,请使用

SQLite.select()
  .from(table)
  .where()
  .orderBy(Customer_Table.customer_name, true)
  .queryList();

答案 1 :(得分:0)

在“Customer_Table.customer_id”中,Customer_Table是表的名称,customer_id是列名。您可以从数据库中获取名称和ID,并以编程方式对数据列表进行排序,也可以使用此查询

mDb.query(true,PT_TABLE,new String [] {KEY_PID,KEY_NAME},     null,null,null,null,KEY_PID +“DESC”,null);