Lagom Frameworkを使用することを学んでおり、永続側の仕組みを理解できません。Lagom Frameworkで永続化せずに状態を取得する方法
私の例はシンプルです。商品を作成、購入、注文して株価を変動させる商品在庫といくつかのサービスがあります。現時点では、在庫の量と各在庫の移動量を加えた商品を追加/削除しています。私が達成したいのは、すべての株式移動を維持し、それらから製品を作り出すことだけです。
ラゴムフレームワークについて私が理解することは、製品を永続させるべきではなく、株式移動のイベントであるということです。このようにして、製品の在庫を知りたい場合、イベントは何とか処理されて現在の状態を取得します。ここ
私のサービスの実装ではは、私は今のところ、製品の状態を取得する方法である:
@Override
public ServiceCall<String, NotUsed, Source<Product, ?>> getProduct() {
return (id, req) -> {
Source<Product, ?> result = session.select("SELECT * FROM products WHERE id = ?", id)
.map(row -> new Product(row.getString("id"), row.getString("ean"), row.getLong("quantity")));
return CompletableFuture.completedFuture(result);
};
}
、ここでは、私が株式を追加する方法です:
@Override
public ServiceCall<String, Stock, NotUsed> add() {
return (id, request) -> {
log.info("EAN: {}. Supply order received.", id);
PersistentEntityRef<StockCommand> ref = persistentEntityRegistry.refFor(StockEntity.class, id);
return ref.ask(new StockCommand.AddStock(request.amount)).thenApply(r -> NotUsed.getInstance());
};
}
Lagomへと方法はあります永続化されたイベントでのみ製品の状態を再構築しますか?私のニーズにどのように達成することができますか?
この質問を確認することをお忘れして申し訳ありません。これはプロジェクトを完全にリファクタリングすることで解決され、私の質問は無関係になりました。しかし、助けてくれてありがとう。 –