2011-01-19 11 views
0

私はどこにいるのか分かりました。サービスレベルのオブジェクトをエンティティパッケージに入れる傾向があります。これは私のエンティティクラスのコンセプトが間違っているのか疑問に思いました。エンティティクラスはリレーショナルデータベースのテーブルを表していましたが、私は正しいのですか?もしそうなら、あなたはこれらのオブジェクトをどこに置くことを推奨しますか?おそらくServiceオブジェクトパッケージにありますか?私のサービスオブジェクトは本当にエンティティパッケージに属していますか?

答えて

1

私はそれらを論理的に分離します。データアクセス層、サービス層などがあっても、懸念事項の分離です。私は、ボードの上に少し行く傾向にあるが、私は次のように何かの操作を行います。あなたが同じプロジェクトですべてを維持する場合、ある

app 
--model 
----PersonEntity.java (JPA annotated entity) 
--service 
----PersonService.java (interface) 
--web 
----PersonController.java (SpringMVC Controller, Struts action, etc.) 
--internal 
----PersonServiceImpl.java (Contains JPA EntityManager, e.g.) 

を。おそらくサービスとモデルコードをそれ自身のプロジェクトに分けることになります。たとえば、別のWebサービスを作成して同じドメインモデルを再利用する場合などです。

私はDAOのファンではありませんが、かなり流行しています。私はどこにDAOを置くのか分からないが、おそらく同じコンベンションに従うだろう。余分なパッケージは別のフォルダにすぎません。それは大したことではなく、できるだけコードを整理するのが理にかなっています。

1

ここでは、エンティティオブジェクトをモジュール内のパッケージ内に定義します。次に、サービスインターフェイスは同じモジュール内の同じパッケージにありますが、実装は別のモジュールの同じパッケージにあります。 EntityXに関連するすべてのコードを同じパッケージ内に保つことは良いことです。エンティティ、Dao、およびサービスの定義と実装が含まれます。

関連する問題