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

Struts 1 Java Discussion :

Récupérer un numéro de séquence


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut Récupérer un numéro de séquence
    Bonjour à tous, passé un bon week-end ?

    Pas de chance je viens vous embêter avec du code. Enfin bon, vous êtes surement plus malins que moi donc ça ne devrait pas vous poser beaucoup de problèmes .

    Voila le problème : j'ai une JSP et un tableau (voir ci-dessous)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <h2>Liste des composants ajoutés</h2>
    
    <table class="tableau_affichage" align="center">
    
                    <tr>
                      <th>Numéro</th>
                     <th>Hash-code</th>
                     <th width="210">Nom</th>
                     <th>Version NSA</th>
                     <th>Compilation</th>
                     <th></th>
                  </tr>
    		<tr>
    
         <tbody>
      <logic:notEmpty name="tableauComposantsActionForm" property="composantsListCollection">
      <logic:iterate id="panierComposants" name="tableauComposantsActionForm" property="composantsListCollection" >
      <logic:present name="panierComposants" >
    
                <tr>
                     <td><bean:write name="panierComposants" property="numero" /></td>
                     <td><bean:write name="panierComposants" property="hashCode" /></td>
                     <td><bean:write name="panierComposants" property="nomLibrairie" /></td>
                     <td><bean:write name="panierComposants" property="versionNsa" /></td>
                     <td><bean:write name="panierComposants" property="codeBatch" /></td>
                     <td><input type="image" src="/LivApp/Images/del.png" onclick="javascript:efface()" alt="Supprimer"/></td>
                </tr>
    
      </logic:present>
      </logic:iterate>
      </logic:notEmpty>
         </tbody>
       </tr>
    </table>
    Ce tableau me permet de récupérer une liste de composants à partir d'un formulaire. Jusque là tout fonctionne ; le seul hic! est que le numéro (en gras) est généré à partir d'une séquence dans un EJB.

    Cela me pose problème étant donné que le tableau me retourne null. Je ne comprend pas pourquoi, puisque que la primary key est le numéro et qu'il n'est pas null (vérifié).

    De ce fait, à la place du numéro, j'ai un champ vide. Quelqu'un aurait-il une petite idée de la solution ?

    Merci d'avance et joyeux lundi ...

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Difficile de répondre sans le code du formulaire et EJB...
    Quand tu dis "vérifié", tu entends quoi, en mode débug avant d'envoyer à la page ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    Arf désolé, je file jamais assez de code.

    Quand je dis vérifié c'est que dans la base de données je peux accéder aux numéros (SQL*Plus), et de toute manière s'ils étaient null, en tant que primary key je ne pourrai pas les insérer. C'est uniquement quand je les récupèrent que je n'obtiens rien.

    Voici le code du formulaire. La collection sur laquelle j'itère est en gras.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    public class ComposantsActionForm
        extends ActionForm {
    
       private String analyseSql;
       private String basesConcernees;
       private Integer codeBatch;
       private Integer codeLivraison;
       private Integer codeReport;
       private Integer codeType;
       private String composantsImpactes;
       private String consignesIntegration;
       private String contraintes;
       private Date dateExecution;
       private Date datePremierTraitement;
       private String definitionObjectif;
       private String descriptionTraitement;
       private String hashCode;
       private String identification;
       private String impactInfocentre;
       private String impactsApplicatifs;
       private String impactsSysteme;
       private String lienRessources;
       private String lienSpecTech;
       private String natureTraitement;
       private String nomFichiersIni;
       private String nomLibrairie;
       private String nomScript;
       private Integer numeroLibrairie;
       private String periodicite;
       private String procedureIncident;
       private String tempsPrevu;
       private String tempsReelConstate;
       private String versionNsa;
       private String versionwls;
       private String volumeTraite;
       private Collection batchListCollection;
       private Collection reportListCollection;
       private Collection composantsListCollection;
    
    [...]
    
     public Collection getcomposantsListCollection() {
       return composantsListCollection;
     }
    
      public void setcomposantsListCollection(Collection composantsListCollection) {
       this.composantsListCollection = composantsListCollection;
     }
    Le code de l'EJB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    <entity>
          <display-name>Composant</display-name>
          <ejb-name>Composant</ejb-name>
          <local-home>gest_livr_appli.EJB.Entity.ComposantHome</local-home>
          <local>gest_livr_appli.EJB.Entity.Composant</local>
          <ejb-class>gest_livr_appli.EJB.Entity.ComposantBean</ejb-class>
          <persistence-type>Container</persistence-type>
          <prim-key-class>java.lang.Integer</prim-key-class>
          <reentrant>False</reentrant>
          <cmp-version>2.x</cmp-version>
          <abstract-schema-name>Composant</abstract-schema-name>
          <cmp-field>
            <field-name>analyseSql</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>basesConcernees</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>composantsImpactes</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>consignesIntegration</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>contraintes</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>dateExecution</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>definitionObjectif</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>descriptionTraitement</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>hashCode</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>identification</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>impactInfocentre</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>impactsApplicatifs</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>impactsSysteme</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>lienRessources</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>lienSpecTech</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>natureTraitement</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>nomFichiersIni</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>nomLibrairie</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>nomScript</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>numero</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>periodicite</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>procedureIncident</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>tempsPrevu</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>tempsReelConstate</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>versionNsa</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>versionwls</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>volumeTraite</field-name>
          </cmp-field>
          <cmp-field>
            <field-name>datePremierTraitement</field-name>
          </cmp-field>
          <primkey-field>numero</primkey-field>
        </entity>
     
    [...]
     
     <session>
          <display-name>ComposantSessionFacade</display-name>
          <ejb-name>ComposantSessionFacade</ejb-name>
          <home>gest_livr_appli.EJB.Session.ComposantSessionFacadeHome</home>
          <remote>gest_livr_appli.EJB.Session.ComposantSessionFacade</remote>
          <ejb-class>gest_livr_appli.EJB.Session.ComposantSessionFacadeBean</ejb-class>
          <session-type>Stateful</session-type>
          <transaction-type>Container</transaction-type>
          <ejb-local-ref>
            <ejb-ref-name>ejb/composant</ejb-ref-name>
            <ejb-ref-type>Entity</ejb-ref-type>
            <local-home>gest_livr_appli.EJB.Entity.ComposantHome</local-home>
            <local>gest_livr_appli.EJB.Entity.Composant</local>
            <ejb-link>Composant</ejb-link>
          </ejb-local-ref>
        </session>
    S'ils vous faut plus, call me ...

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    C'est bien ce qu'il me semblait, à mon avis, ton numéro est généré lors de la validation de l'enreg. et pas avant (d'où ton NULL)... et là, à moins de modifier l'EJB, tu l'as dans le baba...
    Je suppose que tu ajoutes des POJO dans une collection et que tu valides le tout par une action qui persiste le tout en DB (après, tu devrais l'avoir ton numéro), c'est bien ça ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    Je ne sais pas si j'utilise des POJO.

    L'Action qui insère mon composant récupère les champs un par un du form et l'insère dans une Dto, qui ensuite après être passée par le Delegate, arrive à la Session qui reprend les champs un par un du Dto pour les mettre dans l'entité.

    En fait, pour récupérer mes Objets, j'ai un Vecteur static dans la Session, dans lequel j'ajoute ou supprime des Dto. A partir de ce Vecteur, je retourne une collection de Dto. Ensuite cette collection je l'insère dans le form, et j'itère dessus dans ma JSP.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    POJO = Plain Old Java Object, un object basic avec propriétés et getter/setter, très certainement comme tes DTO (ah, le vocabulaire , le jour où on standardisera...)
    Bref, si tu regardes dans ta collection, je pense que tes nouvelles entrées n'ont pas encore de numéro, et qu'elles n'existent pas encore dans la DB.
    Rien ne t'empêche de mettre dans ce cas un "attente validation" à l'affichage de ta liste en lieu et place du numéro (ça peut être une information supplémentaire pour l'utilisateur) ou alors, valider à chaque ajout...
    A toi de voir...(moi je préfère la 1ère manière)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    Arf, ok. Je vois ce que tu veux dire.

    En fait, je voulais faire exactement comme la première manière que tu as cité, mais comme je n'y arrivais pas, j'ai opté pour la seconde.

    Ce qui est bizarre c'est que justement, mes nouvelles entrées ont tout de suite un numéro dans la DB (je fais un "select from composant" via SqlPlus aussitôt l'action terminée).

    Enfin bon, je vais essayer de me débrouiller.
    Merci pour les précisions

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    C'est une précision utile... Il faudrait donc juste recharger ta liste de DTO (ton objet est détaché ou transient en terminologie Hibernate), tu as donc validé ("commité") tes ajouts à chaque fois ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    En fait je pense que le problème vient que comme je fais le commit manuellement (toujours via sqlplus), la validation n'a pas encore été effectuée et donc le numéro pas encore attribué. Dans ce cas, comment faire un "commit" automatiquement dans le code (ça non plus je sais pas faire ...) ?

    En réalité, mon tableau est une sorte de panier, ce qui fait qu'aussitôt mon objet inséré dans la DB, une fois ajouté dans le vecteur de retourne ma collection de Dto ; alors je ne vois pas très bien comment la "recharger" non plus ...

    Le code de la fonction qui retourne la collection de Dto[]:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
      public ComposantDto[] recupListeComposants() throws EJBException {
        try {
          if (vlisteComposants != null) {
            System.out.println("not null");
            ComposantDto[] returnArray = new ComposantDto[vlisteComposants.size()];
            return (ComposantDto[]) vlisteComposants.toArray(returnArray);
          }
          else {
            return null;
          }
        }

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Je ne suis pas sûr de bien te comprendre :

    dans ton action (ajouter au panier), tu créés un objet ComposantDto, tu transferts les données de la page dans cet objet, tu l'ajoutes à ta liste composantsListCollection, tu appelles "delegate" (je ne sais pas ce qu'elle fait, tu peux montrer ou expliquer ?) qui met en session (mais est ce que ça persiste dans la base ici ?) et tu réaffiches la page en utilisant les données de l'ActionForm, c'est ça ?

    Mais dans l'ActionForm, ta liste composantsListCollection n'a pas été rechargée donc, à moins que les adresses des objets de cette liste soient les même que celle de ta session DB (j'en doute), tu n'as pas l'ID des nouveaux enreg...
    Si tu appelles "recupListeComposants()" avant le retour à la page, tu as les séquences ?

    Je ne vois pas trop le rapport avec SqlPlus, c'est un outil à part...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    Je suis pas très clair en effet ; je reprend depuis le début (ça sera plus simple) :

    Voila comment se passe l'ajout. Je rempli effectivement un Dto que je viens de créer et je crée mon composant à partit de ce Dto (le Delegate ne joue le rôle que d'intermédiaire) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Extrait du code de l'Action
     
    // Création du composant
        ComposantDto composantDto = define(tableauComposantsActionForm);
        livraisonDelegate.createComposant(composantDto);
    A cet instant, mon composant est crée. Puis ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        // Ajout du composant dans le vecteur
        composantDelegate.ajouterComposant(composantDto);
    
      // Récupération du vecteur
      ComposantDto[] listeComposants =   composantDelegate.getListeComposants();
        
      // Insertion dans le form
    tableauComposantsActionForm.setcomposantsListCollection(Arrays.asList(listeComposants));
    Dans ma session je dispose de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private static ComposantHome composantHome;
      private static Vector vlisteComposants;
    Pour accéder à la fonction ajouterComposant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     public void ajouterComposant(ComposantDto c) throws EJBException {
    
        try {
          if (this.vlisteComposants == null) {
            this.vlisteComposants = new Vector();
            vlisteComposants.addElement(c);
                 }
          else {
            vlisteComposants.addElement(c);
              }
          }
    
        catch (Exception ex) {
          System.out.println(ex.getMessage());
          // erreur à gérer
        }
      }
    ... et à La fonction getListeComposant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public ComposantDto[] recupListeComposants() throws EJBException {
        try {
          if (vlisteComposants != null) {
            ComposantDto[] returnArray = new ComposantDto[vlisteComposants.size()];
            return (ComposantDto[]) vlisteComposants.toArray(returnArray);
          }
          else {
            return null;
          }
        }
     
        catch (Exception ex) {
          return null;
        }
      }
    Quand au commit ben ... je le fait via SqlPlus (c'est pour ça que j'en parlait ...).

    J'espère avoir éclairé ta lanterne

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Certes, mais partiellement, j'ai pas tout le code

    Peux-tu faire un System.out.println("id=" + c.getLeNomDeLaColonneID());
    dans "ajouterComposant(ComposantDto c)", à mon avis, tu n'as pas de valeur de clé ici...
    Que fait livraisonDelegate.createComposant(composantDto); ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    Certes, mais partiellement, j'ai pas tout le code
    Arf, encore désolé ... Qu'est-ce qui te manque (c'est que j'en ai tellement que j'ai plus l'impression d'embrouiller qu'autre chose) ?

    Que fait livraisonDelegate.createComposant(composantDto); ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
      public void createComposant(ComposantDto composantDto) throws EJBException {
    
          if (composantDto != null) {
            try {
              Composant composant = composantHome.create();
              setComposantFromComposantDto(composant, composantDto);
    
            }
            catch (Exception e) {
              throw new EJBException(e.getMessage());
            }
          }
          else{System.out.println("create qui foire");// Message d'erreur
          }
        }
    
    [...]
    
     private void setComposantFromComposantDto(Composant composant,
                                                ComposantDto composantDto) {
        composant.setAnalyseSql(composantDto.getAnalyseSql());
        composant.setBasesConcernees(composantDto.getBasesConcernees());
        composant.setComposantsImpactes(composantDto.getComposantsImpactes());
        composant.setConsignesIntegration(composantDto.getConsignesIntegration());
        composant.setContraintes(composantDto.getContraintes());
        composant.setDateExecution(composantDto.getDateExecution());
        composant.setDefinitionObjectif(composantDto.getDefinitionObjectif());
        composant.setDescriptionTraitement(composantDto.getDescriptionTraitement());
        composant.setHashCode(composantDto.getHashCode());
        composant.setIdentification(composantDto.getIdentification());
        composant.setImpactInfocentre(composantDto.getImpactInfocentre());
        composant.setImpactsApplicatifs(composantDto.getImpactsApplicatifs());
        composant.setImpactsSysteme(composantDto.getImpactsSysteme());
        composant.setLienRessources(composantDto.getLienRessources());
        composant.setLienSpecTech(composantDto.getLienSpecTech());
        composant.setNatureTraitement(composantDto.getNatureTraitement());
        composant.setNomFichiersIni(composantDto.getNomFichiersIni());
        composant.setNomLibrairie(composantDto.getNomLibrairie());
        composant.setNomScript(composantDto.getNomScript());
        composant.setPeriodicite(composantDto.getPeriodicite());
        composant.setProcedureIncident(composantDto.getProcedureIncident());
        composant.setTempsPrevu(composantDto.getTempsPrevu());
        composant.setTempsReelConstate(composantDto.getTempsReelConstate());
        composant.setVersionNsa(composantDto.getVersionNsa());
        composant.setVersionwls(composantDto.getVersionwls());
        composant.setVolumeTraite(composantDto.getVolumeTraite());
        composant.setDatePremierTraitement(composantDto.getDatePremierTraitement());
      }
    Peux-tu faire un System.out.println("id=" + c.getLeNomDeLaColonneID());
    dans "ajouterComposant(ComposantDto c)", à mon avis, tu n'as pas de valeur de clé ici...
    Bien joué ... en effet j'ai bien "id=null"

  14. #14
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    Arf! J'ai essaycé de remplacer la séquence par des numéros arbitraires non nulls lors de la création, mais ça ne marche toujours pas!

    Comment faire ?

  15. #15
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Je pense que le fait de présenter un texte "attente validation" serait bien dans la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     <logic:iterate id="panierComposants" name="tableauComposantsActionForm" property="composantsListCollection" ><tr>
    <td>
    <logic:notEmpty name="panierComposants" property="numero">
    <bean:write name="panierComposants" property="numero" />
    </logic:notEmpty>
    <logic:empty name="panierComposants" property="numero">
    Attente validation
    </logic:empty>
    </td>
    <td><bean:write name="panierComposants" property="hashCode" /></td>
    <td><bean:write name="panierComposants" property="nomLibrairie" /></td>
    <td><bean:write name="panierComposants" property="versionNsa" /></td>
    <td><bean:write name="panierComposants" property="codeBatch" /></td>
    <td><input type="image" src="/LivApp/Images/del.png" onclick="javascript:efface()" alt="Supprimer"/></td>
    </tr>
    </logic:iterate>
    Après, pour le problème du commit, je ne sais pas, il faut voir dans tes EJB...
    On dirait (vu d'ici ) que tu as un EJB "livraison" qui couvre le tout, si tu sauvegardes cet objet, tu auras peut-être la validation des lignes

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    Oui, j'ai bien un EJB Session Livraison Stateless, qui fait tout le taf, mais pour le panier de composants on m'a conseillé de réaliser une autre Session (Composant) en Statefull (à cause du Vecteur).

    En fait, j'avais besoin du numéro pour pouvoir supprimer une ligne du panier en faisant un findByPrimaryKey, mais je vais essayer de me débrouiller autrement.

    Je teste le code. Encore merci

  17. #17
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    C'est pas très propre ce qu'on t'a conseillé
    Je suppose qu'en DB, ta table "composant" a une référence sur "livraison", donc, on devrait le gérer par l'EJB (entity) Livraison via les méthodes addComposant(ComposantDto) et removeComposant(ComposantDto)
    (enfin, un truc dans le genre...)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  18. #18
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    C'est pas très propre ce qu'on t'a conseillé
    Ouai mais bon ... dans deux jours ce projet est fini quoi qu'il arrive alors bon ...

    Je suppose qu'en DB, ta table "composant" a une référence sur "livraison"
    Pour la référence c'est exactement ça, chaque composant référence une livraison.

    donc, on devrait le gérer par l'EJB (entity) Livraison via les méthodes addComposant(ComposantDto) et removeComposant(ComposantDto)
    Et c'est justement la méthode removeComposant qui pose problème , puisque je peux l'appeller qu'avec un numéro (qui n'existe pas encore) et un ComposantDto (non plus)

  19. #19
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    D'un autre côté, je ne vois pas pourquoi tu veux appeller la méthode removeComposant dans le cas d'un ajout
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  20. #20
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 90
    Points : 48
    Points
    48
    Par défaut
    Parce que si j'ai posté ce sujet c'est pour pouvoir supprimer un composant

    Sur chaque ligne j'ai un png d'une petite poubelle et quand je clique dessus je souhaite appeller la fonction de suppression du composant.

    Mais pour cela il faut que je récupère le numéro du composant (ou le Dto).

Discussions similaires

  1. Récupérer le numéro de téléphone entrant
    Par louisss dans le forum Access
    Réponses: 23
    Dernier message: 26/07/2023, 18h21
  2. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  3. [PDF - FOP - XSL] Récupérer le numéro d'une page
    Par caro. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/02/2005, 11h35
  4. Comment récupérer le numéro de la semaine ?
    Par claude dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2004, 15h06
  5. [xml] Récupérer le numéro de la ligne d'erreur d'un fichier
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/03/2004, 19h09

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