Google App Engineアプリケーションに「メッセージ」クラスがあり、最後の(最新の)ものをデータストアから取得したいと思います。最新の20のメッセージのように。基本的に見えますが、JDOでこのようなクエリを作成する方法はわかりません。JDOを使用したGAEデータストアからの最新のオブジェクト?
1
A
答えて
2
まず、すべてのMessage
エンティティにタイムスタンプを保存する必要があります。そして、その完了です:
public List<Person> get20NewestMessages() {
Query q = new Query("Message")
q.addSort("timestamp", SortDirection.DESCENDING);
PreparedQuery pq = ds.prepare(q);
return pq.asList(FetchOptions.Builder.withLimit(20));
}
編集をあなたが指摘したように、これは低レベルのデータストアを使用しています。ここではJDOの例を試してみます:
Query query = pm.newQuery(Message.class);
query.setOrdering("timestamp desc");
query.setRange(0, 20);
List<Message> messages = (List) query.execute();
(私はこれをテストしていませんが、それは動作しない場合があります)
が
0
import javax.jdo.PersistenceManager;
import javax.jdo.Query;
import javax.jdo.Transaction;
...
public List<Message> get20NewestMessages() {
PersistenceManager pm = PMF.get().getPersistenceManager();
Query q = pm.newQuery(Message.class);
q.setOrdering("timestamp desc");
q.setRange(0, 20);
List<Message> messages = (List<Message>) q.execute();
return messages;
}
関連する問題
- 1. GAE/Jデータストア:JDOを使用してINクエリを作成する方法
- 2. GAEのJDO:クエリによって返されたオブジェクトの更新
- 3. GAEデータストアへのアクセス:JDO、JPAまたは低レベルのAPIを使用しますか?
- 4. GAEデータストアを使用した地理情報管理とオブジェクト化
- 5. GAEデータストアNDB新機能:GAEデータストアNDBの新しいドキュメントを読んで、他のGAEアプリ
- 6. GAEのNDBデータストアから最初のレコードを取得する
- 7. JDO - オブジェクトの更新
- 8. オブジェクトIDを使用したJDOクエリ
- 9. GAEデータストアからのデータのレプリケート
- 10. GAEデータストア
- 11. GAE Datastoreの結果がJDOを使用してFlexTableになる
- 12. dojoデータストア/ JsonRestStoreから取得したオブジェクトの更新/変更
- 13. 管理対象VM JDOデータストア
- 14. GAEデータストアのフロントエンド - GAEのphpMyAdmin-like
- 15. GAEデータストアのサイズを移動
- 16. 自動インクリメントカラムi JDO、GAE
- 17. JDOを使用したスプリングリラックスサービス
- 18. GAEデータストアとJDOQLのセキュリティリスク
- 19. 検索GAEデータストアのプロパティは
- 20. GAEデータストアのreferenceProperty関係
- 21. GAEのIDの奇数シーケンスJDO
- 22. データストアを使用した単純なGAE形式のデータ型例外
- 23. JDOとGAEの境界ボックス検索
- 24. GAEのデータストアでSQLライクな関数を使用する
- 25. GAEデータストアのKey-Valueデータですか?
- 26. sqliteデータベースからAppEngineのGAEデータストアにデータをロード
- 27. データストアからエントリを取得する方法を追加しましたか? (GoogleのアプリエンジンとJDO)
- 28. GAEデータストアにキャッシュされたエンティティが
- 29. Achaxproxyを使用したSencha Touchデータストアのレコードの更新
- 30. GAEデータストア異常な膨大
はあなたのソリューションは、低レベルのJavaデータストアのAPIを使用していますが、それは私のすべて与えました私はJDOでそれを行う必要がありました。どうもありがとう。 – Pascal
JDOの例で更新されました。 –
エンティティにすでに数値IDフィールドがある場合は、タイムスタンプの代わりにそのIDを使用することもできます。つまり、最高のIDを持つ20個のメッセージを取得できます。 –