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 :

Problème de fetch avec un OneToMany


Sujet :

JPA Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut Problème de fetch avec un OneToMany
    Bonjour,

    Je tourne en rond sur un problème JPA qui me paraît pourtant simple.
    Il s'agit simplement de "fetcher" une collection d'une entité.

    Mon modèle est le suivant : j'ai des "Item" qui sont reliés à des "User" via une table d'association "ItemUser".

    [ Item ] 1 --- n [ ItemUser ] n --- 1 [ User ]

    Je veux pouvoir requêter des "Item" en récupérant la liste associée de "ItemUser". Problème, j'obtiens toujours une liste vide (les données en base existent).

    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
    19
    20
    21
    @Entity
    public class Item implements Serializable {
     
        @Id
        @GeneratedValue( ... )
        @SequenceGenerator( ... )
        @Column( name = "ID" )
        private Long itemId;
     
        @Lob
        private String content;
     
        @OneToMany( mappedBy = "item" )
        private List<ItemUser> itemUsers;
     
        @NotNull
        @ManyToOne
        private SomeOtherEntity etc;
     
        ...
    }
    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
    @Entity
    @IdClass( value = ItemUserPK.class )
    public class ItemUser implements Serializable {
     
        @Id
        @ManyToOne
        private Item item;
     
        @Id
        @ManyToOne
        private User user;
     
        private Boolean flag;
     
        ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class CommentUserPK implements Serializable {
     
        private Long item;
     
        private Long user;
    }
    Sur des tests aussi basiques que em.find( Item.class, 1L );, la collection itemUsers est toujours vide...

    Pour information, l'application tourne sous Glassfish 3, avec EclipseLink.
    J'ai mis ce qui correspond en gros au résultat souhaité (qui me parait OK, je me suis inspiré de la spec JPA elle-même, §4.1.2) mais même en simplifiant encore plus (ItemUser avec juste id, many-to-one et flag)... c'est pas mieux...

    Je suis preneur de toute suggestion !
    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut
    En regardant la discussion suivante (http://stackoverflow.com/questions/8...ally-populated), il semble que ce soit lié à une histoire de cache.

    J'ai simplement ajouté un "em.refresh(obj)" dans mon service (où obj référence une liste d'Items).
    Cela fonctionne mieux, mais tout ne m'est pas encore très clair.

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

Discussions similaires

  1. Problème avec les OneToMany relations
    Par sim_mmm dans le forum JPA
    Réponses: 0
    Dernier message: 25/08/2009, 04h10
  2. problème de suppression avec un OneToMany
    Par *alexandre* dans le forum Hibernate
    Réponses: 2
    Dernier message: 04/11/2008, 08h26
  3. [EJB3] problème de fetch=lazy avec ejb3
    Par pbdlpc dans le forum JPA
    Réponses: 2
    Dernier message: 16/01/2007, 21h52
  4. [Hibernate]Problème de requete avec "join fetch"
    Par gauloiskiki dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/06/2006, 09h54
  5. utilisation de fetch avec select
    Par arwen dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/06/2003, 10h03

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