Modele mapping

Le mappeur de modèle tentera de résoudre implicitement l`ambiguïté, mais dans le cas où il ne peut pas être résolu, une exception est levée. Une ou deux façons dont cette exception peut être résolue sont: après avoir choisi d`importer la table dans Model, nous pouvons utiliser l`entité «facture» dans notre datamodel. L`un des aspects les plus importants de la configuration initiale consiste à configurer Model mapper pour qu`il se comporte de manière fiable et prévisible pour mapper vos différents modèles de données. Il est toujours possible de définir manuellement le mappage des nouveaux éléments dans le modèle de données. Après la création d`un nouvel élément, nous pouvons définir, élément par élément, le mappage. Ceci est fait avec les propriétés de mappage de l`élément sélectionné. Pour chaque nouvel élément (Entity, attribute, relation), nous pouvons choisir l`élément Database lié à partir des métadonnées de base de données (récupéré avec la fonctionnalité «actualiser»). ModelMapper prend en charge l`intégration avec n`importe quel type de modèle de données. Des arborescences de JavaBeans et de JSON aux enregistrements de base de données, ModelMapper fait le levage lourd pour vous. Notez que les types de données sont automatiquement traduits dans les types d`informations pris en charge par la Database utilisée (dans le Data Model: String, Integer, dans postgres Database: varchar (255), Int4) bien que ce billet de blog se concentre sur ModelMapper, il est important de le comparer à d`autres bibliothèques qui aident dans les mappages de modèles croisés. Dozer est une autre bibliothèque populaire disponible, mais contrairement à la compilation statique que ModelMapper exploite, Dozer s`appuie sur des fichiers XML externes pour tirer sa configuration pendant l`exécution.

Tests de performance contre Dozer ont également produit des résultats supérieurs pour les alternatives de Dozer, comme ce billet de blog suggère. Un modèle de mappage de données de base décrit les transformations requises pour migrer les données décrites par un modèle d`objet managé source vers le schéma décrit par un modèle de destination. Lorsque vous effectuez une nouvelle version d`un modèle d`objet managé, vous devez migrer les magasins persistants de l`ancien schéma vers le nouveau. Pour les modifications simples apportées au modèle, les données de base peuvent déduire le mappage requis (comme décrit dans le Guide de gestion des versions du modèle de données de base et de la migration des données). Pour des modifications plus complexes, vous devez fournir un modèle de mappage décrivant comment effectuer la migration. La fonctionnalité «synchronyze» détecte que cette nouvelle entité est définie dans le modèle de données et n`est pas définie dans la base de données. Cela signifie que WebRatio crée automatiquement les instructions SQL pour créer la table (le dialecte SQL particulier utilisé dépend du type de base de données), puis nous pouvons choisir d`enregistrer les instructions et/ou de les exécuter dans la base de données. Le mappage entre l`élément de modèle de données et l`élément de base de données exporté est automatiquement créé. À partir de WebRatio 5.1. X, il est possible de modifier le package par défaut dans lequel les classes Java liées au modèle de données sont générées.

La valeur par défaut ont est “com. webratio. WebApp” mais il est possible de le personnaliser. Pour ce faire, il vous suffit de sélectionner le modèle de données nœud à partir de la vue de contour et définir le nom du package java propriété. Une fois que la base de données a été spécifiée, il est possible de choisir de définir manuellement le mappage ou de laisser WebRatio le faire automatiquement à l`aide de la Syncronization. La synchronisation consiste en une comparaison entre ce qui est défini dans le modèle de données et ce qui est défini dans la base de données. WebRatio détecte toutes les différences entre le Data Model et la Database. Les solutions d`application aujourd`hui sont modularisées en plusieurs couches pour fournir la résolution de problèmes logiques et la séparation des préoccupations. Les couches de service constituent traditionnellement une logique métier, tandis que les couches sentinelles sont impliquées dans la communication avec un client frontal ou des API/bases de données externes.

0