Java EE建築のDAOのもおすすめ利用の場合は、ORMのようにJPA2?
-
26-09-2019 - |
質問
ばねを用いORMのようにJPA2-したいことが分かった私の体のマッピングされるデータベースは、まだまだ多用するDAO?うよりオーバーヘッド。
例えば、っていなければいけないと考えて維持つパッケージ:
一つを指定する私のドメインのオブジェクト(あるい地図自体オブジェクト):
public class Employee { private String firstName; private String lastName; ... // Getters and setters }
を包含してインターフェースを指定しっDAO方法
public interface EmployeeDAO { public void addEmployee(Employee employee); public Employee getEmployeeById(long id); ... }
を包含してセッション豆を実装する私のDAOの
public EmployeeJpaDAO implements EmployeeDAO { interface method implementations here .... private method that transform my Employee entity into my Employee domain object }
このコミュニケーションも楽しみのお荷物の追加時には毎回行う必要があるである新CRUD動作します。
しかし、特典を見ることから、DAOは:
できるメモリの実施にDAOのためのユニット試験サービス。この意味だと思うのでアクセスデータベースのテストビジネスロジックを、保証することができるオブジェクトは常に同じ値特性
で分離しビジネスロジックからデータベースアクセスロジック
オプションとなる実施のDAOでも利用者物EntityManagerのサービス層:
@Stateless
public class EmployeeEjb {
@PersistenceContext(unitName = "employee")
private EntityManager manager;
public Employee getEmployeeById(long id) {
return manager.createNamedQuery(Employee.GetEmployeeById).getResultList();
}
...
}
はありません中。で来、建築又は実施される建築を満たすものDAO層(最も重要なことに、このユニットtestabilityのビジネスロジックをするものなのかどうかに関しては、上記のものになるすべてのオーバーヘッドの関与を実施するDAO層?
謝のためのあらゆる提案やご提案!によって見えることがあってます。
解決
ばねを用いORMのようにJPA2-したいことが分かった私の体のマッピングされるデータベースは、まだまだ多用するDAO?うよりオーバーヘッド。
です。明確に、Java EEな活用を DAO パターンを利用の場合JPA JPAは既に提供を標準化の実施 ドメインの店 パターンとのない価値で遮蔽するDAO).だから、そのDAOに対ドライ この状態です。
そのために 簡単な の場合(実際、多くの場合、楽しくスキップのDAOいに問題がないこと。詳 複雑な (例えば使用時の保管手続き、フラットファイル)から利用します。その他の語によって違いますので、それぞれとしてまとめ はJPAを殺害しのDAO?.また、関連する以下の問題:
に関する質問
- このJPAやもんをDAOのパターン
- はパターンのためのEJB
- 何が良い戦略のためのseprating層のためには、申請に使用できるオンラインとオフライン?
- 利用当財団はJPA会員企業は、DAO.なしです。
- どの適切なDAO構造jpa2/eclipselink?
(...)を包含してセッション豆を実装する私のDAOの
明日は、あいを実施するDAOとしてセッションBean:
- んを作っていきたいもの(金)セッション豆としてテーブルの大きな廃棄物の資源)
- だいたいチェーンセッション豆ろん再現誤差から、これはトランス悪い練習にない規模です。
うまくっているという感覚を持っていDAO方に向いていEM注射されたいずれかの実施おDAOsと豆(Java EE5)やCDI管理ビーン(Java EE6).
できるメモリの実施にDAOのためのユニット試験サービス。
なので、しばらく日本にいたい ユニット 試験、模擬のDAO/EntityManagerありません。やりたいのであれば統合の試験を設定することができJPAを利用するメモリデータベースです。なにか買わないこの引数に使います。
で分離しビジネスロジックからデータベースアクセスロジック
正直、きというものはないと思い 大きな 違いを頼りに、DAO vs社長んどのDAOに別のものを""よりよい.あたなのこの引数に使います。
私の経験の裏付残存溶液は非常に例外的なイベントの見たいな方法が良いと思いますを紹介しDAOsう引き起こす可能性が高くないだろう(YAGNI, KISS).
はありません中。で来、建築又は実施される建築を満たすものDAO層(最も重要なことに、このユニットtestabilityのビジネスロジックをするものなのかどうかに関しては、上記のものになるすべてのオーバーヘッドの関与を実施するDAO層?
ないではないか落とを強く示唆しなDAOsんだのを感じます。と申し上げたように、模擬の EntityManager
いユニットテストのビジネスロジックを動作させることができて嬉しい書以下のコードです。
より多くの資源
他のヒント
のです。
単責任の原則(SRP), DAOに対してはどのようにお考え, で分離し、モデルの論理を持続する層で可搬性に優れています。
場合にプロジェクトでは試験ユニットをDAOを試験を用い、正しく表してください(モックアップ、データベース試験をする。
DAOはサービスのように、また包む当社のプロセスをブクラスが容易でメンテナンスまで
JPA会員企業の回線数のコードが、何より、従来のルールが適用されます。
JPAをリポジトリ層にその は当社のリポジトリ層に.同じ原理について内包されたロジックを取得、利益の一部です。きの封止は、単に増殖0.1なのにふさわしい封止.
例えば、ということかと思い、次の問題:一部の奇何らかの理由でリタイアの挿入が可能で、新しいクライアントのデータベース?.どこにだんだんです。.a:ClientDaoが存在しない場合には、その探索と発見を楽。