0

Play フレームワーク 1.2.5 と Play-Morphia モジュールを使用しています。1 回の Morphia クエリで多くのオブジェクトを更新する方法があるかどうか知りたいです。https://github.com/greenlaw110/play-morphia/blob/master/documentation/manual/crud.textileでこの例を見つけましたが、見つけるために「in」操作を使用できないようです私がIDのリストに保持しているすべてのオブジェクト。

IDがリスト「itemsIds」にある各オブジェクトにファイルされたpaidInvoiceDocNumを更新しようとしています。これは私がこれまでに試したことです: String q = TransactionItem.find().field("id").in(itemsIds).toString(); TransactionItem.o().set("paidInvoiceDocNum", String.valueOf(docNumber)).update(q);

.toString() がないと機能しません。助言がありますか?

4

2 に答える 2

0

Play-Morphia を長い間試した結果、この更新を行う方法を見つけました。

Datastore ds = TransactionItem.ds();
UpdateOperations<TransactionItem> op = ds.createUpdateOperations(TransactionItem.class).set("paidInvoiceDocNum", String.valueOf(docNumber));
Query<TransactionItem> q = (Query<TransactionItem>)TransactionItem.q().filter("id in", itemsIds).getMorphiaQuery();
ds.update(q, op);

それが役立つことを願っています...

于 2013-05-12T13:58:33.257 に答える
0

これを試すことができますか?

TransactionItem.o().set("paidInvoiceDocNum", docNumber).update("id in", itemsIds);

ところで、モルフィアのバージョンは何ですか。Play はモジュールの更新を終了したことに注意してください。これを使用して、最新の morphia プラグイン バージョンを取得します: https://gist.github.com/greenlaw110/2868365

于 2013-05-12T20:59:23.760 に答える