0

Android アプリをサーバーと同期する機能を実装しようとしています。

同期時に、Android のアプリがログインし、前回の同期がいつだったかを伝えます (これは現時点では単なる理論です)。

問題は、サーバーは、報告された日付以降に変更されたすべてのエンティティを選択し、顧客でフィルタリングし、それらに (json で) アプリに応答する必要があるということです。

別の方法は、各エンティティに「lastUpdate」列を作成することです。ただし、Web システムはすでに Hibernate Envers を使用しています。エンティティには の注釈が付けられ@auditedます。

revinfoテーブルを使用して、日付以降に変更されたすべてのエンティティを選択するにはどうすればよいですか? エンティティの履歴は必要ないことを思い出してください。何が変わったのかを知る必要があります。最新バージョンのみが Android アプリに送信されます。複数回変更されたエンティティがアップグレード中に 1 回だけ表示されるようにするにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

0

関心の分離の原則に基づいて、そのようなアプリケーション ロジックを revinfo テーブルから分離しておくのが最善かもしれません。

ケースの詳細についてはよくわかりませんが、リビジョン ID とブール値 (または日付) を含む結合テーブルは、Envers 監査データをクリーンな状態のままにして、このアクティビティを追跡する低コストの方法です。結局のところ、ビジネス ロジックが変更され、ユース ケースが増える可能性がありますが、エンティティへの変更の監査は同じままである可​​能性があります。

于 2013-08-15T02:39:40.837 に答える