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

Grails Java Discussion :

Acceder aux données d'une table à l'autre


Sujet :

Grails Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Acceder aux données d'une table à l'autre
    Bonjour,

    Je débute en grails et j'ai une question:

    J'ai deux tables, une table "Produits" et une table "Inventaire".

    Dans ma table "Produits" j'ai "Id", "Nom", "Prix".
    Dans ma table "Inventaire" j'ai "Id", "Nom", "Prix", "Stock".

    L'exemple est un peu simplifié par rapport à ce que j'ai réellement.


    Mes Domain Classes sont les suivantes:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Produits {
     
        String nom;
        int prix;
     
        String toString(){
            "$nom"
        }
     
        static constraints = {
            nom (blank:false)
            prix (blank:false)
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Inventaire {
     
        Produit produit;
        int prix;
        int stock;
     
        static constraints = {
            produit (blank: false)
            prix (blank:false)
            stock (blank: false)
        }
    }

    L'utilisateur définit d'abord ses produits dans la classe PRODUITS et en fait ensuite l'inventaire dans la classe INVENTAIRE.

    Par exemple :

    PRODUITS
    1 Livre 15
    2 Dvd 18
    3 Stylo 3

    INVENTAIRE
    1 Dvd 18 30
    2 Livre 15 12
    3 Livre 15 5
    4 Stylo 3 100


    Je souhaiterai que lorsqu'un utilisateur crée un nouvel objet Inventaire, il sélectionne son produit dans le menu déroulant (ça c'est bon), et que le prix s'inscrive automatiquement en fonction du produit sélectionné.

    Alors j'ai compris qu'on pouvait faire ça joliment et dynamiquement en AJAX, mais j'ai peur que ce soit un peu compliqué pour moi. Ceci dit si quelqu'un a un bon tuto je suis preneur, mais celui la je ne l'ai pas trop compris http://grails.org/AJAX-Driven+SELECTs+in+GSP .

    Sinon ce qui m'irait serait de ne pas avoir de Inventaire.prix mais d'ajouter Produits.prix dans la View de l'inventaire. Une espèce de pointeur vers le prix dans l'autre classe. Le problème c'est que je ne sais pas comment "pointer" vers le prix de l'article en question.

    ------------------------------------------------------------------------------------------
    EDIT :

    Ce qui serait encore mieux serait d'attribuer à Inventaire.prix la valeur de Produits.prix au moment de la sauvegarde. Mais je ne sais pas comment coder ça...

    ------------------------------------------------------------------------------------------


    Si quelqu'un à une solution a mon problème ou une autre manière de faire les choses ce serait parfait.

    Merci d'avance !

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Points : 311
    Points
    311
    Par défaut
    Bonjour,

    Premierement ta classe Produits devrait être Produit (sans s). Une instance de ton domaine correspond à un produit et non à un ensemble de produits.

    Dans ta classe Inventaire, qui doit recenser le nombre de produit et non leur prix il ne faut pas la propriété prix, sauf si le produit de ton produit évolue et que tu as besoin de sauvegarder son prix au moment de l'inventaire, ce qui peut être plausible.
    Il ya une solution assez simple en modifiant la méthode toString() de Produit pour afficher en même temps que le nom du Produit son prix. (Concatenation simple du prix et du libellé), inconvenient partout ou tu dois afficher un produit tu auras son prix. Sinon il faut faire un petit script javascript permettant d'afficher les prix d'un produit ou ajax.

    A la validation de l'inventaire rien de plus simple :
    def inventaire = Inventaire.get(params.id)
    inventaire.prix = inventaire.produit.prix
    etc...

Discussions similaires

  1. ComboBox lié aux données d'une table
    Par the_red_skin dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/03/2008, 11h41
  2. [VBA] accéder aux données d'une table
    Par Schniko dans le forum VBA Access
    Réponses: 13
    Dernier message: 27/02/2008, 00h36
  3. [Requête/SQL]Importer des données d'une table à l'autre
    Par atlantideD dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/04/2007, 10h46
  4. transfert de données d'une table à l'autre
    Par VIRGINIE87 dans le forum Access
    Réponses: 12
    Dernier message: 06/03/2007, 07h48
  5. TRansférer des données d'une table à l'autre
    Par kernel57 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 06/10/2005, 14h05

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