2

Java と Jersey で構築された Web サービスと通信する Android アプリケーションを構築しています。

現在、以下の 3 つのプロジェクトを組織しています。

  • core (common) は、ドメイン モデルの POJO の単純なセットです。
  • クライアント (android) は Android アプリケーションです。
  • server (jersey) は、MongoDB にデータを格納し、持続性のために Morphia ライブラリに依存するジャージー アプリケーションです。

コア ライブラリは、他の 2 つのそれぞれのプロジェクト依存関係です。

問題は、一連のエンティティ クラスを「コア」に作成したことですが、これらのクラスは注釈を使用して Morphia 用に構成されています。これは、Morphia が私の Android アプリケーションへの依存関係になることを意味しますが、これは特に好きではありません。

理想的には、Morphia はフラット ファイルを介した構成を許可しますが、注釈を介したエンティティ クラスの構成のみをサポートします。

Morphia に依存する「コア」の醜い依存関係を吸収する必要がありますか、それとも、私が考えていないクラスを編成するためのより良い方法はありますか?

注:コア クラスから Morphia アノテーションを削除しようとしました。「サーバー」プロジェクトに、「コア」クラスを継承して Morphia アノテーションを追加する新しいクラスを作成しました。ただし、Jersey アプリケーションがサーバー プロジェクトからクラスを返す場合、Android クライアントはそれらのクラスを Jersey クライアントで使用できません。

ありがとう

4

2 に答える 2

1

結局、別の POJO マッパーに切り替えました。私はクンデラと一緒に行くことにしました。javax-persistenceこれにより、コア プロジェクト (JPA アノテーション用) に依存関係が 1 つだけ効果的に作成されます。

于 2012-08-12T23:03:16.753 に答える
0

Morphia から、 mongo-jackson-mapperbson4jacksonなどの Jackson アノテーションを使用する別の MongoDB pojo マッパーに切り替えることができます。このようにして、Android プロジェクトは Morphia ではなく Jackson に依存します。

于 2012-07-14T21:51:00.727 に答える