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

JPA Java Discussion :

JPA et actualisation des entités


Sujet :

JPA Java

  1. #21
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 960
    Points : 4 389
    Points
    4 389
    Par défaut
    Problème de configuration du EAR, probablement dans les XML du META-INF.

    Si vous utilisez MAVEN, méfiez-vous aussi du plug-in EAR et de sa gestion des noms de modules, et de sa manière de copier les JARs dans les différents /lib, je me souviens avoir dû utiliser
    <skinnyWars>true</skinnyWars>
    pour éviter des doublons entre lib/ et .war/WEB-INF/lib

    et
    <fileNameMapping>no-version</fileNameMapping>
    pour éviter les différences de noms de JARs entre 2 XMLs (dont celui de déploiement du container - mais c'était WebLogic pas Glassfish)

    pour contourner les problèmes.

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 110
    Points
    110
    Par défaut
    Je progresse, je progresse.... Il faut bien tenir compte du fait qu'il y a trois types principaux d'EntityManager définis dans JPA.


    • Container Managed and Transaction Scoped Entity Managers
    • Container Managed and Extended Scope Entity Managers
    • Application Managed Entity Managers


    et que le type choisi influence les méthodes à mettre en place.

    J'arrive maintenant à persister les données grâce à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    em.joinTransaction();
    em.merge(obj);
    em.flush();
    return obj;

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    J'ai du mal à comprendre vos choix, pourquoi utiliser une unité de persistence JTA si c'est pour ne pas laisser le conteneur gérer les transactions ?
    D'après le code que tu as présenté, il aurait été plus logique de passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <persistence-unit transaction-type="RESOURCE_LOCAL">
    Si vraiment tu veux utiliser les transactions JTA et gérer les transactions dans le code, tu peux également passer par une persistence EXTENDED.

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    J'ai du mal à comprendre vos choix, pourquoi utiliser une unité de persistence JTA si c'est pour ne pas laisser le conteneur gérer les transactions ?
    D'après le code que tu as présenté, il aurait été plus logique de passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <persistence-unit transaction-type="RESOURCE_LOCAL">
    Si vraiment tu veux utiliser les transactions JTA et gérer les transactions dans le code, tu peux également passer par une persistence EXTENDED.
    Merci. Je VEUX laisser le container gérer les transactions. Ce que j'aimerais savoir, c'est QUAND (et comment) les modifications d'une entité sont écrites dans la DB et comment je peux réactualiser ces entités avec les valeurs de la DB (donc "forcer " ma liste à s'actualiser si les données sont modifiées par une autre source)

  5. #25
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Si tu fais un nouvel appel à ton EJB, après des modifications externes de ta base, ta liste de données devrait être à jour, sinon tu as un problème dans ton code.

    Si tu laisses la transaction gérée par le conteneur, tu n'as à priori pas besoin de joinTransaction().

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Si tu laisses la transaction gérée par le conteneur, tu n'as à priori pas besoin de joinTransaction().
    On peut même dire qu'il ne FAUT pas... ça plante...

Discussions similaires

  1. netbeans: génération de la bd après création des entités jpa
    Par lamabalo dans le forum Persistance des données
    Réponses: 0
    Dernier message: 07/10/2008, 21h55
  2. où insérer le code des entités jpa
    Par cool dans le forum JPA
    Réponses: 4
    Dernier message: 24/04/2008, 18h25
  3. Initialisation des Entités JPA
    Par bouba dans le forum JPA
    Réponses: 2
    Dernier message: 27/09/2007, 19h09
  4. [CR7]Actualisation des données depuis VB
    Par elifqaoui dans le forum SDK
    Réponses: 4
    Dernier message: 24/11/2003, 14h44
  5. [MSXML] Comment empécher la conversion des entités ?
    Par nima dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/11/2002, 15h14

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