Red Hat vous souhaite la bienvenue

Découvrez l'actualité Red Hat près de chez vous

Découvrez l'actualité des clients Red Hat dans le monde entier :

EX297

Examen du certificat Red Hat d'expertise en Persistence

Informations pour :

L'examen du certificat Red Hat d'expertise en Persistence teste si les candidats sont prêts à assumer des responsabilités concrètes de création et de maintenance d'applications Java™ qui utilisent JPA (Java Persistence API) avec JBoss® Hibernate®.

L'examen du certificat Red Hat® d'expertise en Persistence établit la capacité d'un individu à gérer des tâches concrètes associées à l'utilisation de Java™ Persistence API (JPA) avec JBoss Hibernate. La JPA est une structure de langage de programmation Java permettant la gestion de données relationnelles et Hibernate est un service de requête et de persistance objet/relation hautes performances qui met en œuvre la JPA.

Téléchargement d'un examen blanc

Familiarisez-vous avec les outils, l'environnement et les exigences d'un examen RHCJD. Téléchargez l'examen blanc.

En cours de préparation

Red Hat recommande aux candidats à cet examen d'obtenir la certification RHCJD (Développeur JBoss certifié Red Hat) avant de tenter de le passer, sans aucune obligation.

Points à étudier pour l’examen

Pour vous aider à vous préparer, les objectifs de l'examen répertorient les types de tâches que vous serez amené à effectuer au cours de l'examen. Red Hat se réserve le droit d'ajouter, de modifier ou de supprimer les objectifs de tout examen. Ces modifications seront publiées à l'avance.

Tâches de l'examen

Les candidats à l'examen du certificat Red Hat d'expertise en Persistence doivent être capables d'effectuer les tâches suivantes à l'aide de JPA avec Hibernate. Pour vous aider à étudier, nous avons également inclus une liste de références recommandées pour ces activités.

Configuration de JPA/Hibernate

  • Configurer les propriétés PersistenceUnit, notamment :
    • l'emplacement des fichiers de configuration ;
    • les détails de configuration propres à Java EE ;
    • les détails de configuration propres à Java SE ;
    • les détails de configuration propres à Hibernate.
  • Établir la connexion à une PersistenceUnit à partir d'une application Java SE
  • Établir la connexion à une PersistenceUnit à partir d'une application Java EE
  • Remplacer les valeurs de propriété par défaut d'une PersistenceUnit

Documentation de référence recommandée :

Mappage d'une table ou d'un objet unique

  • Comprendre le comportement des générateurs d'ID, notamment comment et quand la valeur est générée
  • Comprendre comment mapper une clé primaire, notamment :
    • l'utilisation des clés générées ;
    • le mappage de clés métier simples ;
    • le mappage de clés composées.
  • Comprendre l'identité objet et l'équivalence métier
  • Configurer des informations propres à la base de données, comme le nom de table, le titre de colonne, la largeur de colonne et les attributs de colonne (nullable, unique, type, etc.)
  • Convertir un objet Java existant en objet persistant à l'aide de JPA/Hibernate
  • Mapper des types de données JPA de base aux types de bases de données correspondants
  • À partir d'une table de base de données existante, créer un objet Java persistant auquel mapper cette table
  • Comprendre comment et quand utiliser les chargements différé et immédiat
  • Comprendre et utiliser les stratégies de mappage optimales pour les collections et les types de valeur
  • Gérer les comportements et propriétés propres aux modèles d'objet/Java dans un objet persistant. Par exemple :
    • Serialization
    • Propriétés transitoires
    • Propriétés générées et calculées
    • Propriétés immuables
    • Types de valeur
    • Propriétés codépendantes (c'est-à-dire, dans le cas où les valeurs valides d'une propriété dépendent de la valeur d'une autre propriété).

Documentation de référence recommandée :

Mappage de relations d'objets avec JPA/Hibernate

  • Comprendre comment mapper des relations, notamment :
    • Relations de valeurs (par ex., a un objet Details)
    • Relations parent/enfant
    • Relations un-à-un (à la fois unidirectionnelles et bidirectionnelles)
    • Relations plusieurs-à-un et un-à-plusieurs (à la fois unidirectionnelles et bidirectionnelles)
    • Relations plusieurs-à-plusieurs (à la fois unidirectionnelles et bidirectionnelles)
  • Comprendre les comportements de mappage par défaut, notamment :
    • Noms de clés étrangères
    • Noms de tables d'associations
  • Comprendre l'utilisation des clés étrangères et des tables conjointes lors de la création de relations
  • Comprendre comment mapper une clé primaire composée en fonction de la relation
  • Comprendre les collections JPA/Hibernate (ensembles, listes de maps et sacs) et la façon dont elles sont mappées aux relations d'objets et de tables
  • Comprendre les impacts des performances des différentes collections
  • Comprendre comment et quand utiliser les chargements différé et immédiat, ainsi que les impacts des performances et du code de ces deux solutions
  • À partir d'un ensemble de tables et de relations existantes, créer un objet Java persistant correspondant à la base de données
  • Mapper un modèle d'objet existant, y compris plusieurs associations, à un magasin de persistance
  • Déterminer les stratégies de chargement optimales pour un processus métier donné

Documentation de référence recommandée :

Mappage de relations d'objets hiérarchiques avec JPA/Hibernate

  • Comprendre comment représenter différentes hiérarchies d'objets à l'aide de JPA/Hibernate
  • Convertir une hiérarchie d'objets Java existante en objets persistants à l'aide de JPA/Hibernate
  • Représenter un ensemble existant de relations de table en tant que hiérarchie d'objets (par ex. : compte d'épargne, carte de crédit et compte de prêts)
  • Comprendre les associations et requêtes polymorphiques
  • Comprendre les avantages et les limites des différentes stratégies d'héritage
  • Analyser et déterminer les représentations de bases de données optimales pour différentes hiérarchies d'objets

Documentation de référence recommandée :

Compréhension du comportement transactionnel (ACID)

  • Acquérir et utiliser un contexte transactionnel sous :
    • Java EE/CMT ;
    • Java EE/BMT ;
    • Java SE à l'aide de l'API JPA.
  • Comprendre comment le contexte de persistance est lié à la transaction dans Java EE
  • Comprendre la propagation du contexte transactionnel avec EJB3
  • Comprendre la conséquence d'un retour arrière transactionnel au niveau du contexte de persistance
  • Comprendre les risques de simultanéité transactionnelle
  • Évaluer la perte de données/corruption par rapport aux compromis en matière de performances

Documentation de référence recommandée :

Hibernate Entity Manager reference guide for use with JBoss Enterprise Application Platform 5 Edition 5.2.0 (Guide de référence Hibernate Entity Manager à utiliser avec JBoss Enterprise Application Platform 5 Édition 5.2.0)

Récupération d'objets persistants

  • Comprendre les stratégies de chargement JPA/Hibernate :
    • chargement tardif ;
    • chargement par sous-select ;
    • chargement par lot.
  • Comprendre et utiliser les options de requêtes avancées :
    • HQL/JPA QL ;
    • API Criteria ;
    • requêtes natives (SQL).
  • Utiliser la fonction de récupération immédiate d'exécution
  • Utiliser des paramètres nommés
  • Anticiper et éviter une LazyInitializationException
  • Analyser et améliorer les performances JPA/Hibernate
  • Comprendre et utiliser les fonctions étendues de verrouillage optimiste JPA et de verrouillage pessimiste Hibernate

Documentation de référence recommandée :

Manipulation d'objets persistants

  • Comprendre les états d'entité, notamment :
    • transitoire ;
    • persistante ;
    • attachée ;
    • détachée ;
    • supprimée.
  • Comprendre comment modifier l'état d'une entité/d'un graphe d'entités à l'aide des API JPA
  • Comprendre le cycle de vie du contexte de persistance et son impact sur les entités gérées
  • Appliquer les fonctions de création de lots JPA/Hibernate :
    • schémas d'utilisation d'API ;
    • requêtes DML.
  • Déterminer et appliquer les paramètres optimaux de mise en œuvre et de cascade pour manipuler un graphe d'objets
  • Évaluer quand utiliser la création de lots

Documentation de référence recommandée :

Informations à savoir

Documentation et formation

L'approche de Red Hat basée sur les performances implique que plus vous aurez d'expérience, mieux vous serez préparé pour l'examen. Toutefois, même les personnes expérimentées ont des lacunes. C'est pourquoi la formation et la préparation personnelle sont tout aussi importantes. La formation, en particulier, peut accélérer l'acquisition de l'expérience. Red Hat propose le cours Technologie JBoss Hibernate (JB297), qui couvre une grande partie du contenu de l'examen. Les thèmes de l'examen traités dans les versions précédentes peuvent varier.

Au cours de l'examen, l'accès à la documentation se limitera au document officiel JBoss Enterprise Application Platform pour la version pour laquelle vous êtes examiné, ainsi qu'aux exemples de fichiers ou à la documentation supplémentaire fournis avec le produit. Nous ne retirerons rien qui soit normalement fourni avec le produit.

Veuillez noter que vous n'aurez pas accès aux wikis jboss.org et hibernate.org. Bien que ces ressources soient utiles et incluent du contenu pertinent pour l'examen, leur format ne permet pas d'y accéder au cours d'un examen. Nous souhaitons vous examiner vous, pas les personnes qui lisent et mettent à jour le wiki.

Vous ne serez pas autorisé à apporter de copie papier, ni de documentation électronique en salle d'examen. Cette interdiction concerne également les notes, les livres ou tout autre matériel. L'accès à Internet sera strictement contrôlé. Gardez toutes ces restrictions à l'esprit au cours de votre préparation.

Environnement

Au cours de l'examen, vous travaillerez sur un système Red Hat Enterprise Linux® 5.4. Par conséquent, toute expérience préalable d'utilisation de Linux ou UNIX sera utile. En revanche, aucune expérience approfondie de Linux n'est requise car l'objectif de cet examen est de tester vos compétences JPA avec Hibernate, pas vos compétences sur un système d'exploitation. Vous disposerez d'un environnement de travail complet et d'une liste de commandes de base, fournie par nos soins, pour référence, en plus des pages de manuel et de toute autre documentation fournie avec Red Hat Enterprise Linux.

Fedora est une alternative en accès libre et gratuit qui vous permettra d'exercer vos compétences Linux. Une version CD live est disponible pour travailler sur Fedora sans avoir à l'installer sur votre ordinateur. Bien qu'elle ne corresponde pas exactement à l'environnement de Red Hat Enterprise Linux, elle est suffisamment proche pour le niveau de connaissances requis.

Téléchargement d'un examen blanc

Familiarisez-vous avec les outils, l'environnement et les exigences d'un examen RHCJD. Téléchargez l'examen blanc.

Format de l'examen

L'examen du certificat Red Hat d'expertise en Persistence est totalement basé sur les performances. Les candidats prouvent leurs connaissances et compétences en effectuant des tâches plutôt qu'en récitant des faits. La plupart des examens de certification informatique posent une série de questions auxquelles vous devez répondre par A, B, C ou D ou se font par l'intermédiaire de questionnaires à choix multiple. Ce n'est pas le cas de l'examen du certificat Red Hat d'expertise en Persistence. Aucune question ne vous sera posée, d'ailleurs. Au lieu de cela, vous aurez face à vous un environnement bien réel dans lequel vous devrez effectuer une liste de tâches concrètes. Par exemple, plutôt que de vous poser des questions sur les annotations de mappage JPA, nous pourrons vous demander de créer et d'effectuer la maintenance d'une association persistante. Aussi, nous conseillons aux candidats de porter un regard critique sur le « bourrage de crâne » en ligne et autres formations de ce type. La seule et unique source d'informations fiable concernant cet examen est le présent document.

L'examen du certificat Red Hat d'expertise en Persistence dure 4 heures. Il est important que vous arriviez quelques minutes avant le début de l'examen pour que nous puissions procéder aux identifications et rassembler les informations utiles.

Environnement de l'examen

Outils de développement

Outre l'environnement de travail, nous vous fournirons une copie installée et configurée de JBoss Developer Studio 3 (JBDS). L'examen ne porte pas sur JBDS et il ne vous sera pas demandé de connaître, ni d'utiliser JBDS pour effectuer les tâches de l'examen. Toutefois, JBDS est un excellent outil de développement et de maintenance des applications JPA/Hibernate et quelques compétences JBDS seront certainement utiles au cours de l'examen. Si vous n'avez pas accès à une copie prise en charge de JBDS, vous pouvez télécharger une version gratuite. Si vous n'êtes pas déjà inscrit auprès de Red Hat, vous devrez créer un compte Red Hat gratuit. Si vous ne souhaitez pas vous inscrire auprès de Red Hat pour bénéficier du téléchargement gratuit, une distribution Eclipse standard avec le plug-in JBoss Tools 4 conviendra pour vous préparer à l'examen.

Les projets de l'examen ont été créés avec Maven. Si vous n'utilisez pas JBDS, vous pouvez utiliser un éditeur de texte standard (comme gedit ou vi), l'outil de ligne de commande et Maven. Notez que l'examen se déroule à huis clos et que Maven s'exécute en mode hors connexion. Vous ne pouvez pas utiliser d'autres référentiels ou plug-ins Maven que ceux déjà importés dans l'environnement local.

Répertoire de travail

Lorsque vous commencerez l'examen, l'espace de travail JBDS par défaut contiendra un ou plusieurs répertoires de projet à utiliser. Vous n'avez pas à utiliser JBDS pour votre développement, mais vous devez utiliser le répertoire de l'espace de travail par défaut et les répertoires de projet fournis pour toutes les tâches. Nous insistons sur le fait que l'ensemble du code et des ressources doivent être développés dans la structure des répertoires fournis et être cohérents avec cette dernière.

Normes de codage

Cet examen est un examen pratique et vous devrez écrire du code afin d'effectuer les tâches. Selon les entreprises, les normes de codage diffèrent. Ici, comme dans tout environnement réel, vous devrez suivre les normes de codage locales. Vous trouverez ci-dessous, pour vous aider à vous préparer, quelques informations sur les normes de codage de l'examen. Ces informations seront également fournies pendant l'examen. Le jour de l'examen, pour mieux vous mettre en condition, imaginez que vous venez d'être recruté comme développeur JPA/Hibernate afin de mener à bien un projet précis. Malheureusement le développeur initial du projet a dû l'abandonner en cours de route et n'est plus joignable. Vous devez déterminer où il s'est arrêté dans le code et en écrire autant que vous le pouvez dans le temps imparti.

Le code est plutôt bien documenté et vous trouverez de nombreuses tâches à exécuter pour vous permettre de savoir ce que vous devez faire. Notez toutefois que le Javadoc et les tâches à exécuter sont insuffisants ; vous devez lire les descriptions des tâches et comprendre ce qui doit être fait avant d'effectuer une tâche. Si vous pensez qu'il existe un conflit entre le texte de la tâche, les diagrammes UML/PDM et le Javadoc/la tâche à exécuter, suivez toujours les indications de la description de la tâche.

Lorsque vous travaillerez, gardez les points clés suivants à l'esprit :

  • Le format du code n'est pas important. Le fait que vous utilisiez des tabulations ou des espaces et le positionnement de vos accolades n'auront aucun impact sur l'évaluation de votre travail.
  • Vous pouvez mapper vos classes à l'aide de fichiers XML, d'annotations de champs ou d'annotations de propriétés, peu importe. Le code existant utilise quelques annotations de champs, mais vous pouvez facilement passer à votre style de mappage préféré.
  • Bon nombre des classes sont organisées de façon inhabituelle ; les champs et méthodes connexes sont regroupés. Ceci est très inhabituel et n'est pas recommandé. Nous avons procédé de la sorte afin de vous faciliter le travail sur un seul élément sans avoir à rechercher dans le code les champs et méthodes connexes. Vous pouvez trier les membres de classes si vous préférez utiliser une structure de code plus normale. Astuce : dans JBDS, les gouttes bleues indiquant des tâches, situées à droite de la fenêtre d'édition, et la liste de propriétés de la vue Outline sont utiles pour naviguer rapidement dans ces classes.
  • Contrairement à ce qui se passe dans le monde réel, les commentaires et messages d'exception ne sont pas importants. L'examen est noté par une machine, donc les commentaires et les messages sont totalement ignorés.
  • La qualité du code et l'application de meilleures pratiques sont importantes. Vous devez appliquer les meilleures pratiques à tout moment et toujours travailler en vous disant que des pratiques médiocres et inefficaces feront baisser votre note. Par exemple, l'une des meilleures pratiques Java consiste à ne jamais exposer publiquement les membres de champs. Vous devez donc toujours utiliser des méthodes d'obtention et de réglage JavaBeans standard pour vos propriétés d'objets.
  • Le projet du scénario de l'examen a été conçu avec d'autres applications d'autres services. Sauf instruction explicite contraire provenant d'une description de tâche ou d'une tâche à exécuter du code, vous ne devez pas modifier la signature d'une méthode existante. La seule exception à cette règle est que vous pouvez et devez spécifier la signature davantage (c'est-à-dire, utiliser une sous-classe et/ou une classe générique spécifique), si cela est approprié. Par exemple, vous devez remplacer Collection{cke_protected}{C}%3C!%2D%2D%3F%2D%2D%3E par List lorsque cela est nécessaire.
  • Vous pouvez ajouter des champs, des propriétés et des méthodes, si besoin.
  • Étant donné que le projet porte sur les entités persistantes et que vous n'avez pas d'entrée dans la couche contrôleur/service, vous êtes censé coder les entités persistantes de manière défensive. Autrement dit, vos méthodes d'entité doivent essayer d'empêcher la logique métier de détruire la cohérence des objets. Par exemple, un réglage pour une propriété nullable doit lever une exception NullPointerException si une valeur « null » lui est transmise.
  • Sauf indication contraire, toutes les entités doivent utiliser les clés primaires de base de données qui sont automatiquement générées par le moteur de persistance.
  • Si une méthode doit lever une exception à cause d'un problème interne, utilisez toujours une exception RuntimeException ; ne créez pas d'exception propre à l'activité. Par exemple, vous pourriez utiliser IllegalArgumentException si le problème concerne un argument non valable pour une méthode. Vous pourriez utiliser IllegalStateException si le problème concerne une incohérence au niveau de l'état du modèle d'objet ou du magasin de persistance. Et, bien entendu, vous pourriez utiliser NullPointerException lorsque cela est approprié. Sauf si vous y êtes explicitement invité, n'utilisez pas les fonctions de persistance transitive JPA pour propager des modifications de manière automatique vers des entités associées dans un graphe d'objets. Notre expérience nous a montré que bon nombre de développeurs métier sont déroutés par cette fonction et que cette dernière peut entraîner des problèmes de performances et de fiabilité si elle n'est pas utilisée correctement. Dernier avertissement : nous ne pourrons pas évaluer votre travail s'il ne se compile pas ou s'il ne s'exécute pas correctement. En particulier, une association persistante qui ne fonctionne pas peut entraîner l'échec de toutes les actions de persistance. Il vaut mieux mettre en commentaire une association difficile plutôt que de risquer qu'elle n'interfère avec d'autres associations qui fonctionnent. Les projets test incluent une bonne sélection de tests JUnit et nous vous recommandons d'exécuter toute la série de tests après avoir effectué une tâche. Notez toutefois que les tests JUnit inclus ne représentent pas l'examen en lui-même et le fait que votre code réussisse ces tests n'indique pas nécessairement que votre travail recevra la meilleure note.

Résultats et communication des notes

Les notes officielles attribuées pour les examens proviennent exclusivement de la Centrale de certification Red Hat. Red Hat n'autorise pas les examinateurs ou les partenaires de formation à donner directement leurs résultats aux candidats. Les notes d'examen sont généralement communiquées dans les trois (3) jours ouvrables aux États-Unis qui suivent l'examen.

Les résultats d’examen sont communiqués sous forme de notes pour chaque partie. Red Hat ne communique pas les résultats sur des points particuliers et ne fournit pas non plus d'informations complémentaires sur demande.

Public ciblé et prérequis

Le certificat Red Hat d'expertise en Persistence s'adresse aux personnes suivantes :

  • Architectes et développeurs d'applications Java expérimentés.
  • Développeurs de bases de données et de composants métier.

Prérequis pour cet examen

  • Avoir suivi le cours Technologie Red Hat JBoss Hibernate (JB297) ou avoir une bonne expérience de l'utilisation de JPA/Hibernate
  • Savoir travailler dans un environnement Red Hat Enterprise Linux
  • Consulter les objectifs de l'examen du certificat Red Hat d'expertise en Persistence (EX297)