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 annotation @OneToOne


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Par défaut Problème annotation @OneToOne
    Bonjour,

    Actuellement, j'utilise les annotations hibernate 3 pour définir les relations entre mes beans.
    J'ai réussi à annoter des relations @OneToMany ou @ManyToOne, mais impossible d'annoter un champs avec @OneToOne...
    En effet, si je ne mets pas cette dernière annotation, en base, ce n'est pas l'id du bean que je conserve mais un byte de l'objet en entier...

    Voici l'erreur qui se produit si j'ajoute cette anotation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cannot simultaneously fetch multiple bags
    En effet, j'ai déjà eu ce problème lorsque j'avais des annotations @OneToMany que j'ai résolu à l'aide de EAGER, mais là, cela ne peut s'appliquer sur @OneToOne ....

    Voici un extrait de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
     
    @OneToMany(fetch = FetchType.EAGER)	
    @Fetch(FetchMode.SUBSELECT)
    @Cascade(value = { CascadeType.ALL })
    private List<Signature> protagonistes;
     
    ...
     
    @OneToOne
    	private Sinistre sinistre;
    ...
    Ce que je ne comprends pas, c'est que dans la documentation, l'exemple est toujours simple, mais il ne fonctionne jamais ...

    Voici l'exemple de la documentation :
    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
     
    @Entity
    public class Body {
        @Id
        public Long getId() { return id; }
     
        @OneToOne(cascade = CascadeType.ALL)
        @PrimaryKeyJoinColumn
        public Heart getHeart() {
            return heart;
        }
        ...
    }
     
     
    @Entity
    public class Heart {
        @Id
        public Long getId() { ...}
    }
    Il se trouve à cette adresse :
    http://www.hibernate.org/hib_docs/an...r/html_single/

    Merci de prendre du temps pour m'éclairer !

  2. #2
    Membre expérimenté Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Par défaut
    Bonjour,

    Je ne suis pas sur que ceci réponde à ta question néanmoins je tente ma chance

    Dans ta première classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    @OneToOne(fetch = FetchType.EAGER)
    private Sinistre sinistre;
    ...
    Et dans ta classe sinistre rajoute une annotation @OneToOne sur le champs qui sert a mapper

    En espérant que ce soit ce qui te manque

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Par défaut
    Merci pour ton adorable attention, cela ne fonctionnait pas, néanmoins, j'ai essayé avec LAZY à la place de EAGER et cela a fonctionné

    Bonne journée et merci encore

  4. #4
    Membre expérimenté Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Par défaut
    Effectivement ça marche bien mieux avec un Lazy

    Si j'ai pu aider tant mieux

Discussions similaires

  1. Problème annotation Hibernate
    Par medmans dans le forum JSF
    Réponses: 4
    Dernier message: 23/06/2013, 16h36
  2. [LV 2009]Problème annotations sur graphique
    Par K-RK-S dans le forum LabVIEW
    Réponses: 1
    Dernier message: 04/05/2011, 10h05
  3. Problème avec l'annotation @OneToOne
    Par krum dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 18/06/2009, 17h05
  4. [EJB3] problèmes annotations
    Par loco_crazy dans le forum JPA
    Réponses: 8
    Dernier message: 11/06/2007, 07h57
  5. Problème avec des annotations
    Par ploxien dans le forum Langage
    Réponses: 8
    Dernier message: 18/04/2007, 10h45

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