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

Hibernate Java Discussion :

hql mise à jour d'un oneToMany


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut hql mise à jour d'un oneToMany
    Pour contrer mon problème d'update j écris une requête en hql, cependant je ne sais pas comment définir la partie qui contient un @OneToMany

    j ai pour l instant ceci

    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
     
    String hql = "UPDATE Localisation SET lieuDit=:lieuDit, coordonneeX=:coordonneeX, coordonneeY=:coordonneeY, provenanceCoordonnees=:provenanceCoordonnees, noSecteur=:noSecteur, noParcelle=:noParcelle, noDetache=:noDetache, surfaceParcelle=:surfaceParcelle, adresse.id=:adresseId WHERE id=:id";
    Session session = getSession();
    session.getSessionFactory().openSession();
    Transaction transaction = session.beginTransaction();
    Query query = session.createQuery(hql);
    query.setLong("id", parcelle.getId());
    query.setString("lieuDit", parcelle.getLieuDit());
    query.setInteger("coordonneeX", parcelle.getCoordonneeX());
    query.setInteger("coordonneeY", parcelle.getCoordonneeY());
    query.setString("provenanceCoordonnees", parcelle.getProvenanceCoordonnees());
    query.setString("noSecteur", parcelle.getNoSecteur());
    query.setString("noParcelle", parcelle.getNoParcelle());
    query.setString("noDetache", parcelle.getNoDetache());
    query.setString("surfaceParcelle", parcelle.getSurfaceParcelle());
    query.setLong("adresse.id", parcelle.getAdresse().getId());
    int rowCount = query.executeUpdate();
    LOG.debug("Rows affected: " + rowCount);
    mais mon entité possède ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @OneToMany(fetch = FetchType.EAGER)
    @Cascade ((org.hibernate.annotations.CascadeType.ALL))
    private Set<Localisation> parcellesDetachees;
    comment faire pour mettre à jour mes entités Localisation ?

    d'avance merci

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    en fait ca doit être une mauvaise solution ...car dans mon entité j ai également un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, optional = true)
    private Adresse adresse;
    et il faudrait également que je gère *à la main* la mise à jour ...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/06/2008, 15h06
  2. [mise à jour]Comment procéder sans tout péter...
    Par FFF dans le forum Installation
    Réponses: 3
    Dernier message: 10/09/2003, 08h11
  3. Mise à jour de la version de MySQL
    Par jobstar dans le forum Administration
    Réponses: 8
    Dernier message: 18/08/2003, 10h45
  4. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 10h25
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

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