Hibernate: Concepts Clés et Configuration

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Quel est le rôle principal d'Hibernate dans le contexte des bases de données relationnelles ?

  • Fournir une interface utilisateur pour interagir avec les données.
  • Gérer les transactions directement au niveau de la base de données.
  • Optimiser la performance des requêtes SQL.
  • Effectuer le mapping entre les objets Java et les données stockées dans une base de données relationnelle. (correct)

Parmi les éléments suivants, lequel n'est pas nécessaire pour qu'Hibernate fonctionne correctement ?

  • Une connexion internet stable. (correct)
  • Un fichier de correspondance qui configure le mapping entre la classe et la table.
  • Les propriétés de configuration de la connexion à la base de données.
  • Une classe Java de type javabean qui encapsule les données.

Quel format de fichier est utilisé pour le fichier de correspondance (mapping file) dans Hibernate ?

  • YAML
  • JSON
  • CSV
  • XML (correct)

Quelle est la convention de nommage généralement utilisée pour les fichiers de mapping dans Hibernate ?

<p>nomDeLaClasse.hbm.xml (C)</p> Signup and view all the answers

Parmi les attributs suivants du tag <class> dans un fichier de mapping Hibernate, lequel spécifie le nom de la table dans la base de données ?

<p>table (B)</p> Signup and view all the answers

Quel tag enfant du tag <class> est utilisé pour définir l'identifiant d'une occurrence dans une table ?

<p><id> (D)</p> Signup and view all the answers

Parmi les classes de génération d'identifiants fournies en standard par Hibernate, laquelle est appropriée pour les bases de données supportant l'auto-incrémentation ?

<p>identity (B)</p> Signup and view all the answers

Si vous souhaitez utiliser une séquence pour la génération d'identifiants dans Hibernate, quelle classe de générateur devez-vous utiliser ?

<p>sequence (A)</p> Signup and view all the answers

Quel tag est utilisé pour spécifier des informations sur une propriété et sa correspondance avec un champ dans la base de données ?

<p><property> (B)</p> Signup and view all the answers

Si vous souhaitez que Hibernate affiche les requêtes SQL générées dans la console, quelle propriété devez-vous configurer ?

<p>hibernate.show_sql (D)</p> Signup and view all the answers

Quelle méthode est utilisée pour définir les propriétés de configuration d'Hibernate dans un fichier hibernate.cfg.xml ?

<p>Configuration.configure() (D)</p> Signup and view all the answers

Parmi les valeurs suivantes, laquelle l'exporte automatiquement le schéma DDL vers la base de données lorsque la SessionFactory est créée ?

<p>create (D)</p> Signup and view all the answers

Dans le contexte d'Hibernate, quel est le rôle d'une SessionFactory ?

<p>Servir de fabrique globale responsable d'une base de données particulière. (D)</p> Signup and view all the answers

Si votre application s'exécute dans un serveur d'applications J2EE et que vous souhaitez qu'Hibernate obtienne ses connexions à partir d'une DataSource JNDI, quelle propriété devez-vous configurer ?

<p>hibernate.connection.datasource (C)</p> Signup and view all the answers

Dans un environnement J2EE, quelle fabrique de Transaction devriez-vous utiliser si vous voulez déléguer la gestion des transactions à CMT?

<p>CMTTransactionFactory (B)</p> Signup and view all the answers

Dans un environnement non managé, quelle est la responsabilité du développeur concernant les transactions avec Hibernate ?

<p>Le développeur doit manuellement délimiter les transactions. (D)</p> Signup and view all the answers

Quelle est la conséquence d'une RuntimeException non traitée dans une méthode d'un bean session CMT dans un environnement J2EE ?

<p>La transaction globale est annulée. (C)</p> Signup and view all the answers

Pour l'utilisation du fichier hibernate.cfg.xml, quelle méthode est appelée pour lire le fichier XML et appeler la méthode buildSessionFactory() ?

<p>configure() (D)</p> Signup and view all the answers

Quels sont les trois états possibles dans lesquels les instances des classes mappées se situent ?

<p>Persistant, détaché, transient (C)</p> Signup and view all the answers

Lorsqu'un objet est à l'état persistant, qu'est-ce qui se passe lors d'un appel à flush() ?

<p>Les modifications de l'objet sont automatiquement synchronisées avec la base de données. (D)</p> Signup and view all the answers

Quelles sont les états initiaux possibles des intances de classe mappées?

<p>Transient et Persistant. (C)</p> Signup and view all the answers

Quelle méthode de la classe Session est utilisée pour associer un objet transient à une session, le rendant persistant ?

<p>save() (A)</p> Signup and view all the answers

Dans Hibernate, quel est le rôle principal de la méthode update() ?

<p>Mettre à jour une occurrence existante dans la base de données. (C)</p> Signup and view all the answers

Quelle est la différence entre save() et saveOrUpdate() en Hibernate ?

<p><code>save</code> sauvegarde seulement les objets qui ne sont pas encore présents dans la base de données, et <code>saveOrUpdate</code> verifie l'état de l'objet afin d'effectuer la bonne action. (C)</p> Signup and view all the answers

Quel problème peut survenir lors de la sauvegarde d'un même objet dans deux sessions différentes ?

<p>Une violation de contrainte d'unicité (duplication d'identifiant). (D)</p> Signup and view all the answers

Quelle méthode est recommandée pour résoudre le problème de sauvegarde d'un même objet dans deux sessions différentes ?

<p>merge() (B)</p> Signup and view all the answers

Quelle méthode de la classe Session permet d'obtenir une instance d'une classe de données encapsulant les données de l'occurrence de la base dont l'identifiant est fourni en paramètre ?

<p>load() (B)</p> Signup and view all the answers

Concernant la méthode load(), laquelle des affirmations suivantes est Vrai?

<p>Elle renvoie une nouvelle instance de cette classe (A)</p> Signup and view all the answers

Quelle est la méthode la plus directe pour mettre à jour l'état d'un objet persistant dans Hibernate?

<p>le charger, le manipuler et laisser Hibernate synchroniser les changements à la fin de la transaction (C)</p> Signup and view all the answers

Que représentent les méthodes Session.update(), Session.saveOrUpdate() et Session.merge() dans le contexte des objets détachés ?

<p>Elles simplifient le processus d'attachement et de mise à jour des objets qui ont été modifiés en dehors d'une session Hibernate active. (A)</p> Signup and view all the answers

Dans Hibernate, que signifie une NonUniqueObjectException lors de l'utilisation de la méthode update() ?

<p>Il y a deux objets de même identité dans la session. (B)</p> Signup and view all the answers

Quelle méthode est utilisée pour fusionner un objet détaché avec un objet persistant déjà présent dans la session dans Hibernate ?

<p>merge() (B)</p> Signup and view all the answers

Si l'entité détachée que l'on cherche a modifié n'existe pas dans la base de donnée, quelle méthode du classe Session on doit utiliser en combinaison du commit pour sauver la modification ?

<p>merge(). (D)</p> Signup and view all the answers

Quelle méthode de la classe Session permet de supprimer une ou plusieurs occurrences de la base de données ?

<p>delete() (B)</p> Signup and view all the answers

Dans Hibernat, quel est le langage d'interrogation permettant la requête des classes persistantes?

<p>Tous les réponses (C)</p> Signup and view all the answers

Quelle est la spécificité de HQL par rapport à SQL ?

<p>Les objets manipulés sont les classes et membres du mapping, pas directement les tables de la base données. (A)</p> Signup and view all the answers

Pour parcourir la collection des occurrences trouvées dans un requête HQL, quelle est l'interface à utiliser?

<p>list() et iterate() (A)</p> Signup and view all the answers

Dans une requête HQL, comment définir alias nommé p pour la classe Personnes?

<p>Personnes as p (C)</p> Signup and view all the answers

Quand plusieurs classes sont présentes dans une requête HQL, quel est le résultant?

<p>B et C (B)</p> Signup and view all the answers

Sous quel format peut-on externaliser des requêtes?

<p>Dans un mapping utilisant une section CDATA (B)</p> Signup and view all the answers

Quelles sont les deux requêtes renvoyées dans le tuple hibernate?

<p>Les requêtes d'hibernate renvoient parfois de tuples d'objets auquel cas chaque tuple est retourner comme un tableau; (C)</p> Signup and view all the answers

Que permet d'utiliser << order by ˃˃dans une requête HQL pour définir l'ordre de tri ?

<p>des occurrences trie (D)</p> Signup and view all the answers

Flashcards

Qu'est-ce qu'Hibernate

Un outil pour mapper les objets aux données dans une base de données relationnelle.

Classe Javabean

Classe Java qui représente une ligne dans une table de base de données.

Fichier de correspondance

Fichier XML qui spécifie le mapping entre une classe Java et une table de base de données.

Propriétés de configuration

Informations nécessaires à Hibernate pour se connecter à la base de données.

Signup and view all the flashcards

Types utilisables pour propriétés

Types primitifs, classes String et Date, wrappers, classes encapsulant une autre table.

Signup and view all the flashcards

Standard de classe Javabean

Respecter le standard Javabean : champs private, Getters/Setters, constructeur par défaut.

Signup and view all the flashcards

<Class> nom attribut 'name'

Nom de la classe qui va encapsuler les données

Signup and view all the flashcards

<Class> attribut 'table'

Nom de la table dans la base de données

Signup and view all the flashcards

<Class> attribute 'dynamic-update'

Booléen qui indique la mise à jour des champs dont la valeur a été modifiée.

Signup and view all the flashcards

<Class> attribute 'dynamic-insert'

Booléen qui indique l'insertion que pour les champs dont la valeur est non nulle.

Signup and view all the flashcards

attribute 'name'

Nom de la propriété dans la classe

Signup and view all the flashcards

attribute 'type'

Type Hibernate de l'identifiant.

Signup and view all the flashcards

attribute 'column'

Nom du champ dans la base de données.

Signup and view all the flashcards

dans

Mode de génération d'un nouvel identifiant

Signup and view all the flashcards

hibernate.connection.url

URL JDBC désignant la base de données

Signup and view all the flashcards

hibernate.connection.username

Nom de l'utilisateur pour la connexion

Signup and view all the flashcards

hibernate.connection.password

Mot de passe de l'utilisateur

Signup and view all the flashcards

hibernate.connection.pool_size

Nombre maximum de connexions dans le pool

Signup and view all the flashcards

hibernate.dialect

Nom de la classe pleinement qualifiée qui assure le dialogue avec la base de données

Signup and view all the flashcards

hibernate.show_sql

Booléen qui précise si les requêtes SQL sont affichées dans la console

Signup and view all the flashcards

hibernate.transaction.factory_class

Classe d'une TransactionFactory utilisée par l'API Transaction d'Hibernate

Signup and view all the flashcards

hibernate.hbm2ddl.auto

Valide ou exporte automatiquement le schéma DDL vers la base de données.

Signup and view all the flashcards

SessionFactory

Fabrique globale responsable d'une base de données particulière

Signup and view all the flashcards

Session

Représente une unité de travail simplement 'threadée'

Signup and view all the flashcards

JDBCTransactionFactory

délègue aux transactions de la base de données (JDBC)

Signup and view all the flashcards

JTATransactionFactory

délègue à CMT si une transaction existante est dans ce contexte.

Signup and view all the flashcards

CMTTransactionFactory

délègue à aux transactions JTA gérées par le conteneur

Signup and view all the flashcards

Environnement simple

Délimiter manuellement les transactions.

Signup and view all the flashcards

Session.flush()

L'appel de commit() déclenchera automatiquement la synchronisation.

Signup and view all the flashcards

openSession()

Ouvrir une connexion vers la base de données en utilisant les propriétés de configuration

Signup and view all the flashcards

SessionFactory

Un cache immuable des mappings vers une (et une seule) base de données

Signup and view all the flashcards

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser