【发布时间】:2019-01-12 08:19:23
【问题描述】:
在我的应用程序中,我有两个表:Operations 和 Categories。
手术台
@Entity(tableName = "OperationsTable")
public class Operation
{
@PrimaryKey (autoGenerate = true)
private int OperationNumber;
private int Year;
private int Month;
private int Day;
private String Category;
private float Amount;
}
类别表
public class Category implements Serializable
{
@PrimaryKey(autoGenerate = true)
private int id;
@ColumnInfo(name = "CategoryName")
private String name;
@ColumnInfo(name = "CategoryType")
private String type;
@ColumnInfo(name = "IconID")
private int iconID;
}
到目前为止,我一直在进行返回操作子集的查询:
@Query("SELECT Category as CategoryName, SUM(Amount) as OperationQuantity FROM OperationsTable WHERE Year = :year AND KindOfOperation = 'Gasto' AND Month = :month GROUP BY Category ORDER BY SUM(Amount) DESC")
LiveData<List<OperationSubset>> getCategorizedExpensesInMonth(Integer year, Integer month);
子集是这样的:
public class OperationSubset
{
@ColumnInfo(name = "CategoryName")
public String name;
@ColumnInfo(name = "OperationQuantity")
public float quantity;
}
现在我想返回相同的子集,但从类别表中添加一个字段:
public class OperationSubsetDesired
{
@ColumnInfo(name = "CategoryName")
public String name;
@ColumnInfo(name = "OperationQuantity")
public float quantity;
public float iconID <-- from Categories table
}
我知道我必须使用关系,但我正在为此苦苦挣扎。
【问题讨论】:
-
这些实体是不同的表。
标签: android sql foreign-keys android-room