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

  FORUM HardWare.fr
  Programmation
  Java

  mapping avec JDO

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mapping avec JDO

n°1204045
ksavieras
Posté le 21-09-2005 à 10:25:36  profilanswer
 

salut,
 
Je bosse actuellement sur de la persisctence en base de données relationnelle avec un KODO / JDO
J'ai un pb au niveau du mapping, je n'arrive pas à gérer l'héritage
J'ai une classe classeMere, étendue par ClasseFille
Je souhaite stocker des objets de type classeFille dans une table
j'ai donc dans mon fichier de maping :
<class jdbc-clss-map="base" name="classeMere" table="table" pk-column="oid"/>
<class jdbc-class-map="flat" name ="classefille" />
 
Le "flat" est là pour signifier que les données sont stockées dans la meme table que la classe mère
 
Voici mon pb :
Lorsque je crée un object de type classeFille, j'arrive parfaitement à le stocker dans la bd
Mais quand je fair une recherche j'obtient des objets de type classeMere, et j'ai un classCastException si j'essaie de le caster en classe fille  
 
Si vous avec une idée, se serait sympa
 
thanx

mood
Publicité
Posté le 21-09-2005 à 10:25:36  profilanswer
 

n°1204310
souk
Tourist
Posté le 21-09-2005 à 14:08:36  profilanswer
 

tu fais une recherche d'objets classeMere ou explicitement d'objets classeFille ? si tu fais une recherche d'objets classeMere, c'est normal qu'il ne te renvoie que des objets de type classeMere, JDO doit utiliser, comme hibernate, un system de proxy et de lazy loading, du coup tous les objets que tu recuperent sont de type classeMere et delegue les appels de methode a un objet de type classeFille.

n°1204381
ksavieras
Posté le 21-09-2005 à 14:38:22  profilanswer
 

en fait on lance la requete de cette facon
Query query = persistenceManager.newquery(filter, classeFille.getClass)
Collection c = (Collection)query.execute();
 
ou filter est un filtre de recherche (je mets "" pour tout avoir" )
Donc on moment de la construction de la requete je passe bien classeFille

n°1204395
souk
Tourist
Posté le 21-09-2005 à 14:42:47  profilanswer
 

et ton filter, il ressemble a quoi ? donne un exemple de code simple qui ne fait pas ce que tu veux

n°1204478
ksavieras
Posté le 21-09-2005 à 15:31:19  profilanswer
 

filter est une string pour restreindre les reponses par exemple  
String filter = "oid == 1", ne renverra que les objets qui ont un champ oid egal à 1
Pour ca on fait un mapping entre l'attribut de la classe et le champs de la bd
Mon pb sur un ex :
class A { String a; ....}
class B extends A {String b; ....}
 
B b = new B(); ...
b.makePersistent(); => ok, ca marche, c'est stockée dans la bd comme je l'attends
getAllB("" /*le filter */, B.class) => renvoie une collection, comme indiqué dans mon message précédent (le fameux query.execute() )
Seulement impossible de caster les éléments de cette collection en type B (ClassCastException), seulement en type A.  
C'est à dire que j'ai accès au champ a de la classe A si je veux, mais pas au champ b de la classe B

n°1204495
souk
Tourist
Posté le 21-09-2005 à 15:41:18  profilanswer
 

tu peux mettre un vrai bout de code ? [:itm]
c'est justement ta query qui m'interesse.
 
je crois que ta query renvoie des instances de classeMere, et que tu fais un filter avec comme contrainte classeFille, et la c'est normal que tu ne recupere que des classeMere, c'est ce que tu as demandé dans ta query...mais je ne peux que supposer vu que tu ne donnes pas de code...

n°1204679
ksavieras
Posté le 21-09-2005 à 19:24:59  profilanswer
 

En fait je mets pas de vrai bout de code parce que la machine sur laquelle je développe n'est pas celle qui a accès au net
 
Mais la query, ce n'est pas moi qui l'ai écrite, c'est une méthode de javax.jdo
Justement on lui passe une classe en parametre (classeFille.getClass()) et malgré ca il ne renvoit que des objetc de type mere
 
Mais je pense que ce n'est pas un type "flat" qu'il faut mettre en fait, seulement je n'arrive pas à faire fonctionner le type "base" non plus


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

  mapping avec JDO

 

Sujets relatifs
[Resolu * 2]solution de mapping java vers java[Hibernate] Pb mapping Oracle
Probleme de mapping memoire[résolu]Adapter le mapping à la taille de l'écran
OpenGL -> Comment réaliser du Shadow mapping?Mapping Objet Relationnel
Mapping des coordonnées de la sourisJDO
fstream et file mappingMapping
Plus de sujets relatifs à : mapping avec JDO


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)