我是 app-engine Datastore 和 NoSQL 世界的新手。我正在开发一个简单的应用程序,用户可以在其中每天申报他/她的费用。每个用户(帐户)都有自己的申报费用。仪表板包含一个简单的 GWT 单元树,其中包含使用声明费用的所有年份,当他/她单击年份时,他会得到所有年份的月份,然后他点击月份并得到所有的日子月,最后点击一天,他得到了当天申报的所有费用。有点像
*2010 年
|_ jan
|_1
|_2
|_Food 12d
|_Dress 200d
|_Fun 150d
|_ ...
|_ feb
|_ ...
*2011
|_ 一月
|_ 二月 |_...
我将每个用户(帐户)的费用实体保存在数据存储中,作为所有费用的父帐户。我的费用如下: public class Expense implements Serializable, Comparable {
private String name;
private double price;
private Date date;
public Expense(String name, double price, Date date) {
this.name = name;
this.price = price;
this.date = date;
}
public Expense() {
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public boolean isPriceValid() {
return price > 0;
}
public void setName(String name) {
this.name = name;
}
public void setPrice(double price) {
this.price = price;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public int compareTo(Expense expense) {
if (name.equals(expense.getName())) {
if (date.equals(expense.getDate())) {
return new Double(price).compareTo(expense.getPrice());
}
return date.compareTo(expense.getDate());
}
return name.compareTo(expense.getName());
}
我的问题是:如何查询数据存储中的费用并返回与指定帐户相关的所有不同年份并将它们放入列表或集合或其他任何我可以列出它们的地方?我是否需要获取所有费用实体并对其进行迭代并获得所有不同的年份。听起来不合理。欢迎任何建议,并提前致谢。