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 :

Update d'un attribut de type collection en JPA


Sujet :

JPA Java

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Avril 2016
    Messages : 60
    Points : 58
    Points
    58
    Par défaut Update d'un attribut de type collection en JPA
    Bonjour à tous.
    J'ai une dificulté dans la mise à jour d'un attribut de type list d'une entité en JPA.
    La situation est la suivante:
    J'ai une entité Equipe qui a une list de participant dans une realation OnToMany, mais quand je fais un update du champ list comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TypedQuery<Equipes> q = em.createQuery("UPDATE Equipes e SET e.participants=:m WHERE e.id=:i",Equipes.class);
             q.setParameter("i",t.getId());
             q.setParameter("m",l);
              q.executeUpdate();
    J'ai cette erreur :

    java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
    Exception Description: Problem compiling [UPDATE Equipes e SET e.participants=:m WHERE e.id=:i].
    [21, 35] An association field cannot be used in an update item's path expression.

    root cause

    Exception [EclipseLink-0] (Eclipse Persistence Services - 2.7.0.v20170811-d680af5): org.eclipse.persistence.exceptions.JPQLException
    Exception Description: Problem compiling [UPDATE Equipes e SET e.participants=:m WHERE e.id=:i].
    [21, 35] An association field cannot be used in an update item's path expression
    Je précise que j'arrive pourtant à mettre à jour tous les autres champs de mon entité sauf la list.
    Quelqu'un pourra m'aider svp?
    Merci d'avance

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Pas le bon forum : à déplacer dans Java/Persistance

    On ne met pas à jour les entités en relation de cette façon avec un ORM : mettez à jour les participants d'un côté et ajouter/supprimer-les de la liste de l'autre,
    l'ORM va s'apercevoir des modifications et générera le SQL correct.

    Vous ne pouvez modifier une Collection de cette manière que si elle est implémentée par un User Type et non par des entités en relation.

  3. #3
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2016
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Avril 2016
    Messages : 60
    Points : 58
    Points
    58
    Par défaut
    Merci JeitEmgie. J'avais fini par trouver comment faire.

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

Discussions similaires

  1. comment recuperer attribut de type hidden
    Par MSM_007 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 19/07/2006, 12h04
  2. Réponses: 3
    Dernier message: 02/05/2006, 15h12
  3. probleme avec les attributs de type ID
    Par ben83 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 01/01/2006, 21h49
  4. Réponses: 3
    Dernier message: 20/09/2005, 08h59
  5. [UPDATE] Mise à jour d'un type text
    Par nico1492 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/01/2004, 13h26

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