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 :

exception : PersistentObjectException


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut exception : PersistentObjectException
    salut je n'arrive pas réaliser un jointure entre mes entités.je voudrais crée dans une entité un attribut qui soit tu type d'une autre entité. un truque de ce genre

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
      @Entity
    public class Service implements Serializable {
     
        private static final long serialVersionUID = 1L;
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Integer id;
     
        @Temporal(TemporalType.TIMESTAMP)
        @Column(name="debut",nullable=false)
        private Date debut;
     
        @Temporal(TemporalType.TIMESTAMP)
        @Column(name="fin")
        private Date fin;
     
     
        @ManyToOne()
        @JoinColumn(name="user",nullable=false)
        private Utilisateur user;
     
     
        public Service() {
        }
     
        public Service(Date debut,Utilisateur user) {
            this.debut = debut;
            this.user = user;
            this.fin=null;
        }
     
        public Integer getId() {
            return id;
        }
     
        public void setId(Integer id) {
            this.id = id;
        }
     
        public Date getDebut() {
            return debut;
        }
     
        public void setDebut(Date debut) {
            this.debut = debut;
        }
     
        public Utilisateur getuser() {
            return user;
        }
     
        public void setuser(Utilisateur user) {
            this.user = user;
        }
     
        public Date getFin() {
            return fin;
        }
     
        public void setFin(Date fin) {
            this.fin = fin;
        }
     
     
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.hashCode() : 0);
            return hash;
        }
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Service)) {
                return false;
            }
            Service other = (Service) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            }
            return true;
        }
     
        @Override
        public String toString() {
            return "database.Service[id=" + id + "]";
        }
     
         public String getLogin() {
            return user.getLogin();
        }
     
    }
    mais voila lorsque j'execute ma application une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.RuntimeException: org.hibernate.PersistentObjectException: detached entity passed to persist: database.Utilisateur
    mes levé et je n'arrive pas à l'attraper,c"est pourquoi je sollicite votre aide. Ainsi espérant m'être bien exprime,tout idée,conseil,ou assistance serait la bien venus.
    a++

  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
    Cette exception signifie que lorsque tu cherche a insérée en base ton objet Service, l'utilisateur qui est en attribut n'est pas rattaché à la base (j'imagine qu'il n'y a pas été inséré).

    Dans le cadre d'une jointure comme celle la c'est le même principe qu'en base. C'est comme si je te disais insère d'abord un tuple dans une table avec une valeur pour une foreign key qui n'existe pas.

    La solution est donc de d'abord persist (ou merge si c'est juste pour réattacher un objet) ton objet Utilisateur puis après d'insérer ton Service.

Discussions similaires

  1. Exception : org.hibernate.PersistentObjectException
    Par mymyma dans le forum Hibernate
    Réponses: 4
    Dernier message: 19/07/2007, 15h33
  2. Exception & Try..catch
    Par PurL dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/12/2002, 15h35
  3. Réponses: 3
    Dernier message: 01/11/2002, 14h30
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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