ここでは、私の例である:
は、データストア//位置1
に新しいエントリを追加し、データストア//位置2
に新しいエントリを追加し、データストア//位置3データストアからエントリを取得する方法を追加しましたか? (GoogleのアプリエンジンとJDO)
今、私は位置2に追加されたエントリを取得したい。それはどのようにGoogleのアプリケーションエンジンとJDOで行うことができますか?
私には、PrimaryKeyにLong IDを指定してgetObjectByIdを使用する方法があります。したがって、長いIDは、データストアによって自動的に位置を格納するのと同じです。それを示して
コード:
import javax.jdo.annotations.*;
import javax.jdo.PersistenceManager;
import mypackage.PMF
public class Entry {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long ID;
//.. other fields
}
// create entries (suppose datastore is empty and i don't need deletes in future)
PersistenceManager pm = PMF.get().getPersistenceManager()
for(int i=0; i<10; i++){
pm.makePersistent(new Entry());
}
// created entries have their IDs exaclty = 1,2,3,4,5,6,7,8,9,10 ?
// fetch entry, that was added second
Key entryKey = KeyFactory.createKey(Entry.class.getSimpleName(), 2L);
Entry secondEntry = pm.getObjectById(Entry.class, entryKey);
私は長いIDフィールドは常に新しいエントリのために1ずつインクリメントされ、それが最初のための1に等しいことを確認することができますか? 他にも良い方法がありますか? :)
「位置2」は正確に何に基づいていますか?あなたはそれに基づいているいくつかのプロパティを持っている必要があります。 – DataNucleus
あなたが言ったことではないあなたがIDを意味するならば、単にIDでJDOQLクエリと注文を行い、2番目のアイテムを選んでください – DataNucleus
"Position 2"は2番目に追加された要素のインデックスですデータベースへ)。 java:myArrayList.add(New Entry);のListと同様です。 myArrayList.add(新規エントリ); myArrayList.add(新規エントリ);今私は2番目の要素を取得cat:secondEntry = myArrayList.get(1)。私はデータストアで同じ動作をしたい – stalk