Logo du forum
 

Forum TT-Hardware

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » petite question EJB et jointure
Login Mot de passe

1 visiteurs sur ce topic (0 membre(s), 1 invité(s) )


Auteur
Sujet : petite question EJB et jointure
bambino
Sage
Membre # 8669

 Avatar du membre
Lieu : lille

Messages :
1173 (0.58 par jour)




Message du 11-01-2008 @ 14:40   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bonjour.

une 'tite question pour icy :) ... ou toute personne susceptible de me dépanner :)

Je travaille sur un projet où il y a des articles qui peuvent être écrits par un ou plusieurs auteurs.

concretement j'ai une classe paper et une classe user.

dans Paper:
Code :

@ManyToMany(mappedBy="papers")   
   private List<User> authors;



dans User:
Code :


   @ManyToMany(fetch=FetchType.EAGER)
   @JoinTable(name="t_authors_papers",
         joinColumns=@JoinColumn(name="user_id", referencedColumnName="login"),
         inverseJoinColumns=@JoinColumn(name="paper_id", referencedColumnName="id")
   )
   private List<Paper> papers;




Le probleme, c'est que je ne sais absolument pas comment faire pour effacer pour effacer un article. Dans mes EJB stateless, quand je fais em.remove(aPaper), j'ai des exceptions à cause des contraintes d'integrité, et j'arrive pas à m'en dépétrer.

any idea?
----------
Sachant que Woody Allen a déclaré: "Quand j'écoute Wagner, j'ai envie d'envahir la pologne", quelle musique écoute Georges Bush jr?
- Haut de page -
Icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
16702 (5.78 par jour)


Score :

Message du 11-01-2008 @ 15:00   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

faut que tu rajoutes la propriété cascade=CascadeType.REMOVE aux 2 annotations manytomany (ou cascadetype.all)

[message édité le 11-01-2008 @ 15:01 Par Icy]
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
bambino
Sage
Membre # 8669

 Avatar du membre
Lieu : lille

Messages :
1173 (0.58 par jour)




Message du 11-01-2008 @ 18:23   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Héhé ce f****ng CascadeType

Le problème, c'est que je ne veux pas nécessairement effacer l'auteur quand j'efface un article, car il peut tout à fait etre auteur d'autres articles....

Or le double cascadeType.REMOVE supprime un auteur (et tous ses autres articles) dès que je supprime un seul de ses articles....

En tout cas merci quand même.

[message édité le 11-01-2008 @ 19:09 Par bambino]
----------
Sachant que Woody Allen a déclaré: "Quand j'écoute Wagner, j'ai envie d'envahir la pologne", quelle musique écoute Georges Bush jr?
- Haut de page -
Icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
16702 (5.78 par jour)


Score :

Message du 12-01-2008 @ 0:02   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

et avec @oncascade sur l'auteur ?

[message édité le 12-01-2008 @ 0:02 Par Icy]
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
bambino
Sage
Membre # 8669

 Avatar du membre
Lieu : lille

Messages :
1173 (0.58 par jour)




Message du 12-01-2008 @ 0:53   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

non en fait je le fait manuellement dnas mon EJB session et ca marche:

voici ce que ca donne:
Code :

public void remove author(String login){

Paper paper = em.find(Paper.class, paperId);
      List<User> authors=paper.getAuthors();
      for(User user:authors){
         user.removePaper(paper);
      }
      em.remove(paper);
}



Le problème c'est que le getAuthors me lancait parfois des lazyInitialsationException, d'où le fetchType.EAGER

[message édité le 12-01-2008 @ 0:55 Par bambino]
----------
Sachant que Woody Allen a déclaré: "Quand j'écoute Wagner, j'ai envie d'envahir la pologne", quelle musique écoute Georges Bush jr?
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2006

Valid XHTML 1.0 Transitional

Page générée en 0.78 secondes