2010-02-05 3 views

Répondre

7

je le casser comme suit:

Jour 1 - Introduction

Qu'est-ce que Hibernate et quel est le problème? ORM, complexités JDBC, neutralité de la base de données bla bla bla

Quel est le moyen le plus rapide de le voir fonctionner? Annotation pilotée (pas de scooting pour bidouiller avec XML), et Spring (pour tous ces merveilleux helpers). Montrez un projet avec une classe Main en lançant un contexte Spring avec log4j installé. Configurez le contexte pour lire les annotations de transaction et les annotations DTO. Configurez les propriétés Hibernate pour créer-déposer le schéma contre MySQL ou Postgres ou tout ce qui est pratique sur votre système et pour afficher SQL dans le journal de la console. Expliquez qu'il ne s'agit que de quelques travaux d'infrastructure courants et qu'ils n'ont pas à s'en soucier à ce stade. Expliquez comment fonctionne l'annotation @Column puis créez un objet DTO pour mapper un ordre.

Exécuter l'application et démontrer le nouveau schéma créé

Expliquer comment les travaux d'annotation de @OneToMany (propriétaire et inverse etc)

Créer une nouvelle DTO OrderItem et de le relier à l'ordre pour que l'ordre 1- * OrderItem.

Exécutez l'application et montrez la table et la relation supplémentaires. Informez-les que jusqu'à présent, aucun code SQL n'a été écrit, il ne s'agit que de méta-données. Expliquer le concept de la session Hibernate.

Expliquer les objets transitoires, détachés et persistants en ce qui concerne les sessions.

Construire un DAO, basé sur le Spring HibernateTemplate qui permettra à un DTO Order transitoire contenant une collection de DTO OrderItem d'être conservé. Créez ensuite l'ordre DTO transitoire, remplissez-le et envoyez-le au DAO. Expliquez qu'il suffit d'une seule ligne de code pour conserver un graphe d'objet entier.

Exécutez l'application et montrez-leur le résultat dans la base de données.

distribuer le code et les amener à écrire un test unitaire pour vérifier le fonctionnement du DAO (rechercher des objets transitoires deviennent persistants à travers le champ ID)

Demandez-leur d'ajouter de nouveaux DTO pour le client afin que le client 1 - * Ordre 1- * OrderItem

jour 2 - requêtes et Transactions

Expliquer que les requêtes sont exprimées par la requête ou l'API critères en fonction de la nature du code de la consommation (une requête statique ou un critère de construction).

Expliquer la conjonction et la disjonction et joindre et mapper les jointures internes et externes. Expliquez que HQL est concerné par les relations d'objet, puis délègue la création de SQL. Ajoutez une méthode à DAO pour effectuer une requête basée sur chaque API.

Exécutez l'application et montrez que la requête fonctionne et que SQL est créé. Expliquez que les transactions sont généralement placées loin des DAO et tendent à vivre dans les services.

Créez un service auquel la commande DAO est injectée et attribuez-lui une annotation @Transaction. Activez le débogage dans log4j pour observer les messages de transaction.

Distribuez le code et demandez-leur de mettre à jour le test unitaire pour vérifier le fonctionnement du DAO afin d'inclure les résultats de la requête et de pré-remplir la base de données avec Customers, Orders et OrderItems.

Venez avec une variété de requêtes qui doivent être mises en œuvre.

1
  1. Sessions
  2. Transactions
  3. Store/Chargement
  4. Annotations/XML Mappages
  5. Comment fonctionnent les caches
+0

en deux jours? ça semble court non? –

+0

Eh bien, c'est essentiellement le minimum dont vous avez besoin pour utiliser Hibernate.Tu ne penses pas? – willcodejavaforfood

1

Ce sont mes propres idées à ce jour.

  • Mise en route - la mise en place d'un projet de mise en veille prolongée
  • Ressources - où aller quand l'aide est nécessaire
  • session - Dans mon expérience, il est crucial de comprendre comment la session de mise en veille prolongée fonctionne
  • Test avec Hibernate - Je pense à faire de chaque élément de codage une partie d'un test, afin que les participants apprennent comment Hibernate s'intègre aux tests.
  • de base Mappages - Tous les types de données de base, plusieurs à une relation

choses que je ne suis pas si sûr - cartographies plus complexes - Bidirectionnelle, un à plusieurs, plusieurs To- beaucoup, héritage, intégrables - personnalisation mise en veille prolongée - Dialects, sql-fonction, écouteurs d'événements - mise en cache - chargement paresseux & stratégies

chercher
+0

Pour les tests avec hibernation! –

Questions connexes