Erreur de mapping [Hibernate] - Java - Programmation
Marsh Posté le 16-11-2005 à 20:06:44
peut etre rien à voir mais pourquoi tu fais de l'hql pour des requetes comme ça au lieu d'utiliser le chouette package de query ?
(j'allais te suggerer de faire une requete avec, juste pour voir, par curiosité, des fois que ta requete serait mal foutue)
(et revise moi ton indentation sur ton xml, c'est du n'importe quoi )
Marsh Posté le 16-11-2005 à 20:06:54
et avec une query plus dans le style hibernate du genre : "from Article where reference = :ref" (avec un grand A pour article), ca donne quoi ?
Marsh Posté le 16-11-2005 à 20:07:44
from fr.unice.toto.article.Article, meme, non , d'ailleurs ?
Marsh Posté le 16-11-2005 à 20:08:08
Bon dsl je suis trop nase !
c'est ma requete qui pue
Code :
|
Marsh Posté le 16-11-2005 à 20:08:38
ah ouais il a pas déclaré son package en début de son hbm
Marsh Posté le 16-11-2005 à 20:10:43
tiens au fait, avec ce style de mapping, ta table elle ressemble à quoi ? plein de colonnes (in)utilisées en fonction du type ?
et il stocke le type ou ?--> <discriminator column="type_article" type="string"/>
il y stocke quoi ? l'attribut type peut prendre quoi comme autres valeurs ??
Marsh Posté le 16-11-2005 à 20:12:09
the real moins moins a écrit : from fr.unice.toto.article.Article, meme, non , d'ailleurs ? |
Et pour l'indentation ... ça me soule NetBeans ne la fait pas automatiquement le vilain chenapan.
Marsh Posté le 16-11-2005 à 20:13:14
si tu mets juste Article, ça marche aussi, meme sans declarer de package ? Par chance, ou parce qu'hibernate voit qu'il ne connait qu'une classe dont le short name est Article ?
Marsh Posté le 16-11-2005 à 20:15:19
(n'empeche, je vote pour une query dans le style de
Criteria criteria = session.createCriteria(Article.class); |
splu joli
(tu peux ptet meme faire createCriteria(Stylo.class)pour etre plus safe, au besoin)
Marsh Posté le 16-11-2005 à 20:16:58
the real moins moins a écrit : tiens au fait, avec ce style de mapping, ta table elle ressemble à quoi ? plein de colonnes (in)utilisées en fonction du type ? |
Bein c'est la strategie la moins prise de tête et celle ou l'on fait le moins de jointure ... bref la meilleure non ?
Et j'ai une colonne type_article pour diferencier les articles, c'est quoi le souci ?
Marsh Posté le 16-11-2005 à 20:19:09
ha mais y'a pas de souci, je demande, stoo
j'ai jamais fait grand chose de super excitant avec hibernate, et notamment les mappings de sous-classes, jamais touché
Marsh Posté le 16-11-2005 à 20:20:03
theReal-- : Oui avec juste Article ça marche aussi. Pourquoi je sais pas ... ta theorie à l'air pas mal.
sebi : "ah ouais il a pas déclaré son package en début de son hbm"
En le mettant dans l'attribut name du tag "class", ça suffit pas ?
Marsh Posté le 16-11-2005 à 20:25:24
the real moins moins a écrit : ha mais y'a pas de souci, je demande, stoo |
Y a trois possibilités :
- 1 seule table pour toute la hierarchie d'heritage
- 1 table par classe
- 1 table par classe concrete
La derniere est la plus intuitive mais la plus casse-guele aussi
Et carrement méchante à mapper.
EDIT : Et ce qui est bien pour la premiere strategie c'est qu'on est reduit à faire 1 seul hbm pour toute la hierarchie
et donc pas se tapper les fichiers de mapping pour chaque sous-classe.
Marsh Posté le 16-11-2005 à 20:27:46
et donc, tu m'as pas dit, dans type_article, hibernate stocke quoi ?
(et pourquoi sur <discrimator> y'a un attribut type? quel autre valeur que string sont possibles??)
Marsh Posté le 16-11-2005 à 20:28:03
(en meme temps, je pourrais aller lire la doc hein )
Marsh Posté le 16-11-2005 à 20:31:23
le class.getName() je crois
Marsh Posté le 16-11-2005 à 20:32:13
Chronoklazm a écrit : |
<hibernate-mapping package="fr.unice.toto.article" >
comme ca tu as plus besoin de préfixer les autres classes à l'intérieur de ton mapping.
Marsh Posté le 16-11-2005 à 20:32:49
Ouais voila ...
Dans la BD ca donne :
type_article(varchar)
fr.unice.toto.article.Stylo
Marsh Posté le 16-11-2005 à 20:33:03
ReplyMarsh Posté le 16-11-2005 à 20:33:53
sebi a écrit : <hibernate-mapping package="fr.unice.toto.article" > |
dakhor
Marsh Posté le 16-11-2005 à 19:53:25
Salut,
J'ai :
Une classe abstraite Article et une classe Stylo.
J'arrive a mettre des stylos dans ma base sans problemes :
Mais j'ai une "org.hibernate.hql.ast.QuerySyntaxException: article is not mapped." quand j'essaye de
récuperer un stylo de la base :
Je trouve paradoxal le fait qu'il sauvegarde sans souci et au chargement il me sort que article n'est pas mappé :
Voila le Article.hbm.xml :
Une idée svp ?
Message édité par Chronoklazm le 16-11-2005 à 19:58:22