94 votes

Clarification de la terminologie - Que signifie "hydrater" une entité JPA ou Hibernate lors de la récupération de l'entité dans la base de données ?

Dans le contexte de l'ORM / Lazy loading des entités, ma compréhension du terme "Hydration" est la suivante :

Le terme "hydratation" décrit le processus de remplissage de certains ou de tous les attributs précédemment non remplis d'une entité récupérée à l'aide du chargement paresseux.

Ex : classe Author est chargé à partir de la base de données :

@Entity
class Author
{
     @Id
     long id;
     List<Book> books;
}

Dans un premier temps, le books n'est pas remplie.

J'ai cru comprendre que le processus de chargement du books de la base de données est appelée "Hydratation" de la collection.

Cette définition est-elle correcte et ce terme est-il courant ? Existe-t-il un autre terme plus courant que je devrais utiliser pour désigner ce processus ?

3 votes

A la personne qui a voté pour fermer la question : J'ai ajouté un exemple pour aider à clarifier ce que je demande. N'hésitez pas à commenter si ce n'est toujours pas clair et à me faire savoir ce que je pourrais clarifier.

157voto

EmacsFodder Points 12284

Hydrate a commencé comme un terme pour remplir un objet/modèle de valeur instancié (mais vide) à partir d'une base de données, (spécifiquement dans Hibernate).

Plusieurs autres ORM et outils tels que BizTalk utilisent Hydrate et d'autres termes connexes (par exemple, BizTalk utilise le terme Dehydrated pour signifier qu'une instance est disponible mais n'a pas encore été alimentée).

Personnellement, je suis opposé aux révisions terminologiques redondantes, peuplé signifie la même chose, sans réinventer la langue. Cela n'ajoute rien et conduit à la confusion (première pensée commune lorsque l'on rencontre des termes réinventés : Est-ce que c'est quelque chose de différent et de magique ? ).

L'extension BizTalk de ce style de langage, en particulier Déshydraté est redondant. J'espère que les gens n'ont pas oublié comment on dit, vide ou clair ?

Hydraté et ses métaphores sont essentiellement des outils marketing, inventés pour différencier Hibernate des produits concurrents.

À ce stade, Hibernate et d'autres produits ORM utilisent ces termes depuis de nombreuses années, de sorte que Hydrate (et Dehydrate) sont là pour rester.

20 votes

Bien sûr que oui, mais c'était le premier, c'est simple et c'est donc beaucoup moins alambiqué. Vous avez peut-être aussi réalisé à ce stade que presque tout ce qui se passe sur la couche logicielle, même une valeur de bit qui est "vrai/faux" ou "1/0", est métaphorique... Devrions-nous commencer à appeler "vrai" quelque chose d'autre maintenant ? Que diriez-vous de "presque certainement" en ce qui concerne Heisenberg ?

20 votes

Je pense que "hydrater" est une bien meilleure métaphore que "peupler". Le terme "peupler" évoque un groupe de colonisateurs qui s'installent sur un territoire étranger ou vierge et le "peuplent". Il y a un espace vide et vous le remplissez avec quelque chose qui n'a rien à voir (mais qui appartient vraisemblablement à cet espace). Lorsque l'on hydrate quelque chose, par exemple une figue sèche, l'essence de la substance est présente, mais elle manque de plénitude. C'est exactement ce qui se passe lorsque l'on "hydrate" un objet. Loin d'être un simple "argument marketing", hydrate est une excellente métaphore.

8 votes

@KyleMathews Eh bien, cela fait trois ans que j'ai posté ma réponse, je n'ai pas explicitement précisé que "Populé" était le terme préexistant pour la même activité, à ce stade "Hydraté" est toujours un terme marginal, et n'est utilisé que dans certaines cultures de langues/produits, tandis que "Populé" reste le terme générique et le plus largement utilisé. N'hésitez pas à utiliser "Hydrate" si cela vous plaît, personnellement je le trouve prétentieux et affecté.

7voto

Jimmy Kane Points 3808

Tout d'abord, je tiens à préciser que je suis arrivé ici parce que cette terminologie me déroutait beaucoup. Je commence à l'entendre de plus en plus souvent au travail. Mes collègues utilisent ces mots pour essayer de décrire quelque chose de très simple et tout le monde pense qu'ils font des choses en rapport avec l'eau, ou de la science des fusées.

Alors oui, je suis là et je suis frustré.

Qu'est-ce que l'hydratation ?

De wiki

L'hydratation est l'ajout de molécules d'eau à une substance chimique.

Étant d'origine grecque (je connais ύδωρ, ενυδάτωση, αφυδάτωση et je l'utilise tous les jours), j'entends souvent ce travail dans mon environnement de travail anglais et je me sens vraiment mal à propos de l'utilisation erronée de ces termes.

Ce n'est peut-être pas une réponse mais plutôt une responsabilité d'écrire ceci et d'exister ici (et d'être un peu frustré), l'utilisation de l'hydratation et de la déshydratation pour les ORM et les DATABASE est aussi pertinente que l'utilisation de l'ionisation et de la déionisation pour la description de la cuisine.

Vous pouvez supprimer la réponse ou rétrograder, au moins j'ai trouvé la paix en disant cela.

4voto

Pangea Points 36713

Le terme "hydratation" est assez vague. Dans notre entreprise, nous utilisons le terme "réhydratation" pour charger toutes les propriétés d'un graphique d'objets entier. Voici un post qui traite des différents niveaux d'hydratation (là encore, il s'agit d'un usage général, même s'il est utilisé dans le contexte d'Hibernate).

2voto

hvgotcodes Points 55375

Je pense que le terme "hydrate(s)" dans le contexte de l'ORM signifie simplement que le cadre vous donne des objets. Les objets sont donc "hydratés" par l'ORM après que les données ont été extraites du magasin. Le terme peut être appliqué à chaque fois qu'un cadre ORM vous donne un objet/graphique qui est représenté dans le magasin.

0voto

jpertino Points 1301

Le terme "hydratation" est largement utilisé dans les entrailles de la bibliothèque Hibernate pour désigner le processus de définition des champs d'un objet récemment chargé, et il est effectivement lié à la population du graphe d'objets.
mais c'est différent du concept de chargement paresseux, qui consiste à donner à l'utilisateur un objet à moitié rempli et à laisser le reste être chargé à la demande.
l'hydratation est toujours effectuée, paresseusement ou avec empressement, et c'est une affaire d'hibernation.
Le chargement paresseux n'est qu'une question de commodité

remplacez hibernate par le nom de l'orme de votre choix

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X