2010-04-07 22 views
1

Je cherche une implémentation DAO générique dans Hibernate qui inclut la gestion des relations parent/enfant (ajout, suppression, obtention des enfants, définition des parents, etc.).Hibernate GenericDAO pour les relations parents/enfants et les modèles DAO/DTO

En fait, le DAO générique le plus utilisé sur le web est celui que j'ai trouvé sur jboss.org.

Et aussi, je cherchais des implémentations d'échantillons DAO/DTO et des modèles de conception.

Connaissez-vous de bonnes ressources?

+0

Pourquoi ne pas utiliser juste hibernent? – blockhead

+0

Je le fais, je cherchais des ressources Hibernate pour ces sujets – Mark

Répondre

2

Je cherche une implémentation DAO générique dans Hibernate qui inclut la gestion de la relation parent/enfant (ajout, suppression, amener les enfants, les parents fixant, etc.).

je garderais le parent/enfant gestion de liens au niveau de l'entité (pas toutes les entités ont parent/enfant), mais je voudrais créer des méthodes de gestion de liens sur eux pour régler les deux côtés lorsque vous travaillez avec des liens bi-directionnels comme décrit au 1.2.6. Working bi-directional links.

En fait, le DAO générique le plus utilisé sur le web est celui que j'ai trouvé sur jboss.org.

Il existe plusieurs projets avec des exemples sur Google code. Je vous suggère de vérifier:

  • generic-dao - JPA Data Access Object Toolkit
  • daofusion - Java mise en œuvre du modèle DAO utilisant JPA/Hibernate.
  • hibernate-generic-dao - Mise en œuvre DAO générique: recherche extensible, détaillé, interface de service à distance
+0

Ajouter la gestion parent/enfant au niveau de l'entité signifie ajouter du code de classe personnalisé aux mappings d'entités (j'utilise des mappages xml), donc vous ne pensez pas que cela serait augmenter la complexité et la maintenabilité des mappings? – Mark

+0

@Marco Dans tous les cas, vous devrez déclarer ces associations dans les mappages XML (l'ajout de méthodes pour gérer les deux côtés du lien est juste pratique, cela ne change rien au mappage). –

0

Les relations parent/enfant sont un type particulier de relations un-à-plusieurs, et elles n'ont pas besoin d'un DAO spécial pour interagir avec. Il vous suffit d'écrire du code comme:

Parent p = new Parent(); 
Child c1 = new Child(); 
Child c2 = new Child(); 
// populate c1 and c2 
p.addChild(c1); 
p.addChild(c2); 
childDao.save(c1); 
childDao.save(c2); 
parentDao.save(p); 

Il y a une section du document Hibernate qui montre en fait une mise en œuvre parent exemple/enfant: Chapter 21. Example: Parent/Child

Si vous préférez utiliser les annotations et/ou Hibernate/JPA, un regarder: Taking JPA for a Test Drive