2017-07-08 6 views
-2

私はRESTとJPA技術に取り組んでおり、一般的にサービスとDao層を設計したいと考えています。 各レイヤのデカップルルールに従いたいと思います。将来的には、必要に応じてこれらのレイヤーを変更することなくいつでも変更することができます。ですから、DAOレイヤーでも同じことをするには、Factoryパターンに従っています。DAO、RESTサービス層を設計するには

今まで私が何をしたか見てください。

public abstract class AbstractDao { 

    @PersistenceUnit(name = "Services") 
    private EntityManagerFactory factory; 

    public AbstractDao() { 
    this.factory = Persistence.createEntityManagerFactory("Services"); 
    } 

    public void save(AbstractEntity entity) { 
    EntityManager em = getEntityManager(); 
    EntityTransaction tx = em.getTransaction(); 
    tx.begin(); 
    em.persist(entity); 
    tx.commit(); 
    } 

    public void delete(AbstractEntity entity) { 
    getEntityManager().remove(entity); 
    } 

    public List<AbstractEntity> findAll() { 
    CriteriaBuilder cb = getEntityManager().getCriteriaBuilder(); 

    CriteriaQuery<AbstractEntity> cq = cb.createQuery(AbstractEntity.class); 
    Root<AbstractEntity> from = cq.from(AbstractEntity.class); 

    cq.select(from); 
    TypedQuery<AbstractEntity> q = getEntityManager().createQuery(cq); 

    List<AbstractEntity> allitems = q.getResultList(); 
    return allitems; 
    } 

    private EntityManager getEntityManager() { 
    EntityManager em = factory.createEntityManager(); 
    return em; 
    } 

} 

enter image description here

'Abstract Entity'

Folder Structure

だから、この私はDAO層に用いられるものをデザイン。しかし、それが正しいアプローチであるか、それともAbstractFactoryのようなものであるかはよく分かりません。

私はCRUDのためにこのDAOレイヤーにアクセスしています。

enter image description here

だから、この私はサービス層上のDAO層にアクセスしていますがどのような方法。しかし、やはり私はこのDAOレイヤーにアクセスするためのより良い方法を考えています。 もう1つ質問したいのは、ビジネスレイヤーを導入してこのようにするとよいでしょうか。

クライアント - >サービス層 - >ビジネス・レイヤー - > DAOレイヤー

は、誰かがプロジェクトの異なる層を設計するために私を助けてもらえます。

ありがとうございます。例えば、このリンクを参照してください、

enter image description here

使用Springフレームワークと春のRESTfulなサービスのアノテーションを使用します:

+0

、画像を投稿しないでください。実際のコードを貼り付けます。 – pzaenger

答えて

-1

このディレクトリ構造のタイプを使用してください

https://dzone.com/articles/exporting-spring-data-jpa

+0

申し訳ありませんMayank、私はspringframeworkを使いたくありません。私は完全にJ2EEのスタックdevして、他の技術のために行きたくありません。 –

+0

彼はSpringフレームワークを使用していませんでした。彼はデザインに関する質問をしました。彼の質問とあなたの答えはどちらも無関係です。ディレクトリ構造には、クラスの論理的なグループ化以外の実際の設計とは何の関係もありません。 –

関連する問題