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 :

Criteria et many to many


Sujet :

Hibernate Java

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut Criteria et many to many
    Hello again,

    J ai un petit soucie avec un criteria

    J ai dans mon objet Affaire

    ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @ManyToMany(fetch = FetchType.EAGER)
    @Cascade ((org.hibernate.annotations.CascadeType.SAVE_UPDATE))
    private Set<Acteur> requerants;
    je tente donc de créer un criterai de cette facon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		if (requerants.hasNext()) {
    			Criteria testOneToMany = criteria.createCriteria("requerants");
    			testOneToMany.add(Restrictions.idEq(requerants.next().getId()));
    		}
    mais apparement cela ne fonctionne pas

    une idée ?

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    en fait j aimerais produire une requete de ce type

    select * from Affaire where Affaire.requeants.id IN (select id from requerant where nom like '%Jaqu%')

    mon probleme ce pose au niveau du select imbriqué qui peut me retourner une liste de requerants ou un seul resultat

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    et petite question encore quand on défnit

    private Set<Acteur> requerants;

    comment récupérer les clefs des objets ? Avec les fichiers hbm

    ca m aurait donnée quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <!-- bi-directional many-to-many association to Department -->
    <set name="requerants" table="affaire_requerant" inverse="true" cascade="all">
    	<key column="affaire_id"/>
    	<many-to-many column="requerant_id" class="test.Requerant"/>
    </set>
    mais avec les annotations ne trouve pas quelle table fait office de n-n car elle n est pas spécifié par annotation

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Points : 484
    Points
    484
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(
     name="affaire_requerant",
     joinColumns = {@JoinColumn(name="affaire_id")},
     inverseJoinColumns = {@JoinColumn(name="requerant_id")}
    )
    @Cascade ((org.hibernate.annotations.CascadeType.SAVE_UPDATE))
    private Set<Acteur> requerants;

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    en fait par défault sans annotations particulière hibernate semble comprendre

    pour mon criteria il me semble que Restriction.in puisse faire l affaire mais le problème sera de récupérer un set et de parcourir la collection pour créer un tableau et le passé en paramètre

    ca me semble pas super propre mais cela permet de conserver des entités hibernate

    si quelqu un avait un avis sur la question je suis preneur

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    j ai finalement opter pour cette solution qui marche très bien ...

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    En fait je ne récupère pas l ensemble de toutes les données
    le in ne semble pas faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select affaire.nom from affaire, affaire_requerants where affaire_requerants.id_affaire = affaire.id_affaire 
    and affaire_requerants.ref_requerant = requerant.id_requerant and requerant.nom like '%Jaq%'
    ou alors j aimerais faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select affaire.nom from affaire, affaire_requerants where affaire_requerants.id_affaire = affaire.id_affaire 
    and affaire_requerants.ref_requerant in (select id from requerant where nom like '%Jaqu%')
    la deuxieme solution serait privilegie car je recupere deja un ensemble de valeur provenant d une requete faite au prealable

    quelqu un aurait une piste ?

    d avance merci

Discussions similaires

  1. API Criteria many-to-many
    Par Fennec. dans le forum Hibernate
    Réponses: 6
    Dernier message: 28/06/2010, 15h35
  2. [Criteria] Relation one-to-many
    Par dedeloux dans le forum Hibernate
    Réponses: 1
    Dernier message: 19/03/2008, 14h00
  3. Un peu de mal a comprendre le concepte "one-to-many" et "many-to-many"
    Par chriscoolletoubibe dans le forum Hibernate
    Réponses: 4
    Dernier message: 29/03/2007, 18h50
  4. [EJB2.1 Entity] [XDoclet][JBoss] CMR - Many to Many Relation
    Par dauggui dans le forum Java EE
    Réponses: 4
    Dernier message: 24/04/2006, 11h45
  5. [hibernate]relation many-to-many
    Par quilo dans le forum Hibernate
    Réponses: 5
    Dernier message: 20/12/2005, 10h07

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