Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2907 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JPA/Hibernate] Mapper des Map

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JPA/Hibernate] Mapper des Map

n°1907721
brisssou
8-/
Posté le 22-07-2009 à 17:46:15  profilanswer
 

Bonjour,
 
pour poser le problème, voilà les tables que je veux mapper :
 

Code :
  1. Admin:
  2.     IDENT: String
  3.     ...
  4. Role:
  5.     ID: int
  6.     ...
  7. Pool:
  8.     ID: String
  9.     ...
  10. ADMIN_POOL:
  11.     FK_IDENT: String
  12.     FK_POOL: String
  13.     FK_ROLE: int
  14.     MAIL: boolean


 
Donc j'ai un objet Admin, qui possède des Pool, avec un rôle particulier sur le pool et une donnée pour savoir si on envoie des mails ou non.
(la base est imposée, reprise d'appli tout ça)
Donc j'aurai voulu un truc genre une Map<Role, AdministeredPool>, avec AdministeredPool un object avec un booléen et un Pool.
 
J'ai tenté ça :

Code :
  1. @Table(name = "ADMIN" )
  2. public class Admin {
  3.     //...
  4.     @CollectionOfElements
  5.     @JoinTable(name="ADMIN_POOL" )
  6.     private Map<Role, AdministeredPool> administeredPoolsMap = new HashMap<Role, AdministeredPool>();
  7.  
  8.     //...
  9. }


Mais Hibernate essaye de faire la jointure sur ADMIN_POOL.ADMIN_USER_PK_IDENT, ce qui marche peu.
 
Avec

Code :
  1. public class Admin {
  2.     //...
  3.     @CollectionOfElements
  4.     @JoinTable(name="ADMIN_POOL" )
  5.     private Map<Role, AdministeredPool> administeredPoolsMap = new HashMap<Role, AdministeredPool>();
  6.  
  7.     //...
  8. }


Je me tape carrément un NotYetImplementedException: Collections having FK in secondary table...
 
Je dois donc raté un truc quelque part. Je tatonne et ça me saoule... je trouve pas de doc sur un mapping de ce genre...
 
des idées ?


Message édité par brisssou le 23-07-2009 à 10:13:26

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
mood
Publicité
Posté le 22-07-2009 à 17:46:15  profilanswer
 

n°1907843
brisssou
8-/
Posté le 23-07-2009 à 09:50:02  profilanswer
 

bon, j'ai trouvé une solution qui marche :

Code :
  1. @CollectionOfElements
  2. @JoinTable(
  3.    name="admin_pool",
  4.    joinColumns = @JoinColumn(name="fk_ident" )
  5. )
  6. @MapKeyManyToMany(joinColumns=@JoinColumn(name="fk_role" ))
  7. private Map<Role, AdministeredPool> administeredPoolsMap = new HashMap<Role, AdministeredPool>();
 

Le truc, c'est que je voudrais aussi les admin d'un pool selon leur rôle, donc je pense mapper une association du même type dans les pools, mais ça me semble pas terrible : c'est pas vraiment une association inverse... et je suis obligé de faire un autre composite, et ça ça craint.

Code :
  1. @CollectionOfElements
  2. @JoinTable(
  3.       name="admin_pool",
  4.       joinColumns = @JoinColumn(name="fk_pool" )
  5. )
  6. @MapKeyManyToMany(joinColumns=@JoinColumn(name="fk_role" ))
  7. private Map<Role, PoolAdmin> adminsMap = new HashMap<Role, PoolAdmin>();
 

une meilleure solution ?

 

edit:
Ah bha non, en fait c'est raté. Je veux des Map<Role, Set<PoolAdmin>> et Map<Role, Set<AdministratedPool>>. dans c'est pas encore ça...


Message édité par brisssou le 23-07-2009 à 10:13:04

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1907887
brisssou
8-/
Posté le 23-07-2009 à 11:23:27  profilanswer
 

bon, ok.
 
Avec les annotations, pas de Map<k, Collection<V>>... galère.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JPA/Hibernate] Mapper des Map

 

Sujets relatifs
[Résolu][Hibernate] Rollback Exception improbableTable dynamique JPA/Hibernate
Debuter en hibernate avec MysqlHibernate Unchecked assignement
[Hibernate] erreur accès à la base (après un jour)[Google Map] Refresh KML
hsqldb et hibernate.config.xmlutilisation personnalisée de Google Map
hibernate problème 
Plus de sujets relatifs à : [JPA/Hibernate] Mapper des Map


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR