IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Web Java Discussion :

Spring REST-Spring Data -- ORM une entité vers muliples tables de même structure


Sujet :

Spring Web Java

  1. #1
    Membre régulier
    Femme Profil pro
    Analyste-developpeur java
    Inscrit en
    Mai 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste-developpeur java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 135
    Points : 76
    Points
    76
    Par défaut Spring REST-Spring Data -- ORM une entité vers muliples tables de même structure
    Bonjour à tous !
    J'aimerais utiliser une architecture Spring REST - Spring Data - JPA - Hibernate pour plusieurs tables qui soient exactement de meme structure.
    J'aimerais ainsi créer une entity qui soient apte à mapper la bonne table.
    Problématique:
    La liste des tables n'est pas finie: il devra être possible d'ajouter des tables (de meme structure) à cette liste et l'application devra pouvoir les gérer sans modification logicielle.
    En gros j'aimerais une architecture de cette forme:
    Nom : structure.jpg
Affichages : 196
Taille : 23,7 Ko

    Ainsi il faudrait que les DAO soient dynamiquement linkés à la table ciblée par la requête en cours et que ce lien puisse être géré aussi dynamiquement (de manière à pouvoir ajouter des noms de tables au rythme de la creation de nouvelles tables).
    Chaque requete HTTP ne sera linké qu'à une table : chaque findAll demandé par une requête retournerait la liste de DAO de la table ciblée par la requête. Et chaque post ciblerait une unique table (le nom de la table serait spécifié dans le chemin)
    Pensez vous que ce type de mapping multi table est possible?
    Je precise aussi que l'application doit permettre l'insertion de dizaines de milliers d'enregistrements par une meme requête (pas de logique de routing trop complexe).

    J'espère être claire avec ces prérequis.
    Pensez vous que cela soit possible?
    J'en suis pour le moment à me demander si je serai contrainte de créer de nombreuses tables d'avance laissées vides et les mapper à autant de dao (en abstrayant les parametres commun: tous)
    J'aimerais eviter cela.

    Merci de votre aide!

  2. #2
    Membre régulier
    Femme Profil pro
    Analyste-developpeur java
    Inscrit en
    Mai 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste-developpeur java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 135
    Points : 76
    Points
    76
    Par défaut
    j'utilise le mauvais terme, je veux dire table pas BD

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Tu veux dire BD mais pas table je pense .
    Dans ce cas tu peux créer une classe qui étend la classe AbstractRoutingDataSource. Si tu veux ne pas retoucher les codes, tu mets les configurations de chaque base avec le même préfix dans un fichier .properties lequel tu lits et charges tous les dataSources créés dans le Map targetDataSources. La base utilisé sera géré par la méthode determineCurrentLookupKey() de la classe fille que tu dois définir. Dans ce cas à chaque fois que tu as une nouvelle base, tu ne fais que modifier le fichier de configuration, et peut-être le serveur aussi, mais pas de code.

    A+.

  4. #4
    Membre régulier
    Femme Profil pro
    Analyste-developpeur java
    Inscrit en
    Mai 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste-developpeur java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 135
    Points : 76
    Points
    76
    Par défaut
    Merci beaucoup de ta réponse!

    Mais en fait j'ai un double problème: il y a des datasources différentes en effet (Schéma, login et mdp différents) et ces datasources contiennent chacune plusieurs tables (de même format) dont la liste n'est pas finie:

    Je me dis déjà que pour les datasources ce sera des services différents (urls différentes parceque la manipulation des data par datasource est complétement indépendante et les utilisateurs d'une datasource n'ont pas le droit d'utiliser une 2ieme datasource... à voir).
    Mais mon problème principal reste bien au niveau du "nom" des tables auxquelles mapper les entités: dans chaque datasource, ces tables sont créées par un outil externe et leur liste peut grandir, de ce fait, indépendamment de l'application.
    Nom : modele.jpg
Affichages : 171
Taille : 75,3 Ko

Discussions similaires

  1. [Framework] Spring MVC, Spring Core, Spring Data Repository
    Par tigeline01 dans le forum Spring
    Réponses: 1
    Dernier message: 28/04/2016, 13h28
  2. Une entité pour 2 tables identiques
    Par 18carats dans le forum Entity Framework
    Réponses: 3
    Dernier message: 21/06/2012, 14h43
  3. Réponses: 8
    Dernier message: 25/05/2011, 10h10
  4. copier coller d'une ligne vers nouvelle table (trigger)
    Par cedric190985 dans le forum SQL
    Réponses: 1
    Dernier message: 18/05/2011, 09h08
  5. [EJB3 Entity] traduction d'une entité classe en table
    Par ndeyemaroc dans le forum Java EE
    Réponses: 0
    Dernier message: 23/11/2009, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo