私はAppEngineDatastoreとNoSQLの世界に共通して初めてです。私は、ユーザーが毎日自分の経費を申告できる簡単なアプリケーションを開発しています。すべてのユーザー(アカウント)には、独自の申告経費があります。ダッシュボードには、使用が経費を申告したすべての年を含む単純なGWTセルツリーが含まれています。年をクリックすると、年のすべての月が表示され、月をクリックすると、すべての日が表示されます。その月のそして最後に日をクリックすると、彼はその日に宣言されたすべての費用を受け取ります。こんな感じです
* 2010
|_ jan
|_1
|_2
|_Food 12d
|_Dress 200d
|_Fun 150d
|_ ...
|_ feb
|_ ...
* 2011
| _ jan
|_2月|_..。
すべての経費の親のアカウントとして、各ユーザー(アカウント)の経費エンティティをデータストアに保存します。私の経費は次のとおりです。パブリッククラスの経費は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());
}
私の質問は次のとおりです。データストアの経費を照会し、指定されたアカウントに関連するすべての異なる年を返し、リストまたはセット、またはそれらをリストできるその他のものに入れる方法は?すべての経費エンティティを取得し、それらを繰り返し処理して、すべての異なる年を取得する必要がありますか?合理的に聞こえません。どんなアドバイスも歓迎し、事前に感謝します。