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

Java EE Discussion :

Probleme synchro avec Transient/EJB [EJB3 Entity]


Sujet :

Java EE

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 28
    Points : 29
    Points
    29
    Par défaut Probleme synchro avec Transient/EJB
    Bonjour tout le monde,
    voila j'ai un champ (CreationDate) qui est en @Transient. Il est autoGénéré par PostGres(creationdate timestamp NOT NULL DEFAULT now()).

    J'aimerais récuperer la valeur générée par PostGres. Seulement, lorsque je fais un
    getCreationDate() il me renvoie null.

    Merci de votre aide

  2. #2
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Je peux me tromper mais il me semble que @Transient signifie à la gestion de la persistence que la propriété n'est pas enregistrée... Tu ne peux donc pas y associer une valeur générée automatiquement par ton système de persistence...

    A quoi sert ton @Transient ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 28
    Points : 29
    Points
    29
    Par défaut
    La valeur n'est pas générée par mon systeme de persistence, mais par PostGres. Dans la base de donnée, la donnée générée y est bien. Cependant, lorsque j'essaye de faire getCreationDate() il me renvoie null.

    Mon @Transient sert parceque lorsque j'ajoute une entrée, je ne spécifie pas de CreationDate. Mais apparement la valeur n'est pas synchronisée avec le champ dû à l'annotation.

    Cordialement

  4. #4
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Je ne comprends pas ce que tu fais et ce que tu veux faire...

    Ton champ est en @Transient => cela signifie que ton système de persistence ne va pas enregistrer la valeur ni la récupérer depuis la table dans la BD associée à ton entity bean...

    C'est donc tout à fait normal que tu récupères null pour cette propriété. Si tu veux que le champ "creationdate" soit dans la table associé à ton EJB dans ton postgres, enlève tout simplement la notation @Transient : quand tu fera un getCreationDate, tu récupèreras alors bien ce qu'il y a dans ta BD.

    Si tu veux que le champ "creationdate" soit dans une autre base de données ou une autre table que celle associée à ton entity bean, alors je ne peux pas t'aider puisque je ne sais pas comment faire sans passer par JDBC...

  5. #5
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par drim

    Mon @Transient sert parceque lorsque j'ajoute une entrée, je ne spécifie pas de CreationDate. Mais apparement la valeur n'est pas synchronisée avec le champ dû à l'annotation.
    Je ne suis pas sûr que tu aies bien saisi le rôle de l'annotation @Transient...

    This annotation specifies that the property or field is not persistent. It is used to annotate a property or field of an entity class, mapped superclass, or embeddable class.
    http://java.sun.com/javaee/5/docs/ap...Transient.html

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 28
    Points : 29
    Points
    29
    Par défaut
    Le probleme c'est que si je vire Transient, il insere null dans CreationDate dans la bdd au lieu d'executer le default.

    Bon je vais tout simplement gerer la date au niveau d' EJB3 plutot que de PostGres.

    Merci de ton aide

  7. #7
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Ok je comprends mieux ce que tu veux faire

    Ce que tu oublies c'est que les EJB3 se veulent indépendant du SGBD utilisé... Tu ne peux donc pas spécifier toutes les options que t'autorisent ton SGBD (comme ton default = now() dans ce cas présent) pour risque de non portabilité d'un SGBD à l'autre.

    Tu dois donc en effet passer par ton EJB pour récupérer la date d'aujourd'hui et l'insérer comme valeur par défaut pour ta propriété... A moins qu'il n'existe un moyen de donner des valeurs par défaut de la sorte pour des propriétés avec les EJB3 (mais je ne pense pas que ce soit possible, qui plus est en appelant une fonction -now()- du SGBD, je ne suis pas sûr que ce soit une spécifiaction commune à tous les SGBD)...

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [String] Probleme incomprehensible avec split
    Par scorpiwolf dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 20/07/2004, 21h21
  2. [JTextAera][JScrollPane]Probleme mineur avec l'ascenseur
    Par Voxdei dans le forum Composants
    Réponses: 2
    Dernier message: 18/07/2004, 09h52
  3. [VB.NET] - Probleme Label avec Database
    Par codez dans le forum ASP.NET
    Réponses: 4
    Dernier message: 03/06/2004, 17h37
  4. probleme sql avec delphi
    Par lil_jam63 dans le forum Bases de données
    Réponses: 7
    Dernier message: 25/02/2004, 04h32
  5. probleme GRAVE avec directx 9
    Par l'arbre en plastique dans le forum DirectX
    Réponses: 3
    Dernier message: 02/09/2003, 23h59

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