Parmi, les autres problèmes détectés, la question de la méthode de mise à jour se pose aussi. Solution 1 : API ---------------- Nous étions partis sur la génération automatique d'un moule de classe Java par un outils genre LutinGenerator, ou notre propre projet... Cette classe générée utiliserait des fonctions que nous développerions pour effectuer ces modifications : Par exemple : * renommer une table * supprimer un attribut * ... Cela permet aussi d'insérer du code pour effectuer des mises à jour complexes spécifiques ; par exemple, la transformation d'un table en objet complexe MatrixType. Solution 2 : DynaBeans ---------------------- L'autre solution évoquée lors de la première solution concernait l'utilisation des dynabeans via hibernate. Mais les quelques recherches effectuées ne nous permettent apparemment pas de récupérer un beans sur une table en base par exemple. Comment conserver l'abstraction d'hibernate pour découvrir le schéma en base, sans disposer des classes du mapping d'origine. Nous sommes ouverts aux critiques sur ces deux solutions, pour pouvoir choisir la solution la plus adaptée pour ce projet. Benjamin, Eric, Sébastien, Vincent
Sebastien EON wrote:
Parmi, les autres problèmes détectés, la question de la méthode de mise à jour se pose aussi.
Solution 1 : API ---------------- Nous étions partis sur la génération automatique d'un moule de classe Java par un outils genre LutinGenerator, ou notre propre projet...
A choisir, si vous optez pour cette solution, j'aime autant que vous créiez vos propres templates pour LutinGenerator, cela nous permettrait de l'éprouver et potentiellement d'en profiter pour l'améliorer.
Cette classe générée utiliserait des fonctions que nous développerions pour effectuer ces modifications : Par exemple : * renommer une table * supprimer un attribut * ...
Cela permet aussi d'insérer du code pour effectuer des mises à jour complexes spécifiques ; par exemple, la transformation d'un table en objet complexe MatrixType.
Solution 2 : DynaBeans ----------------------
L'autre solution évoquée lors de la première solution concernait l'utilisation des dynabeans via hibernate. Mais les quelques recherches effectuées ne nous permettent apparemment pas de récupérer un beans sur une table en base par exemple.
Comment conserver l'abstraction d'hibernate pour découvrir le schéma en base, sans disposer des classes du mapping d'origine.
Je pense que ce n'est pas envisageable sans les mapping. A votre place, je chercherais donc plutôt une manière de conserver/retrouver ces mapping. Bon courage, Arnaud.
Nous sommes ouverts aux critiques sur ces deux solutions, pour pouvoir choisir la solution la plus adaptée pour ce projet.
Benjamin, Eric, Sébastien, Vincent
_______________________________________________ Topia-devel mailing list Topia-devel@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/topia-devel
-- Arnaud Thimel Société Code Lutin - http://www.codelutin.com
Bonjour, Nous rencontrons déjà un problème gênant sur l'utilisation d'Hibernate. Nous tentons de l'utiliser comme si nous disposions d'une base de données existante et des mappings correspondants à cette base. Cependant, Hibernate refuse de se lancer sans les classes correspondantes au mappings. D'un coté, c'est logique, Hibernate doit servir à faire la correspondance avec la base via l'utilisation de ces classes. Élément de solution ------------------- Selon la page : http://www.hibernate.org/hib_docs/v3/reference/en/html/persistent-classes.ht... (4.4. Dynamic models) il serait possible de demander à Hibernate de ne pas faire le lien avec la classe et d'utiliser seulement le fichier de mapping. Cependant, cette fonctionnalités est considérée comme très expérimentale. Benjamin, Éric, Sébastien, Vincent.
On Tue, 6 Feb 2007 10:48:57 +0100 (CET) "Eric CHATELLIER" <eric.chatellier@etu.univ-nantes.fr> wrote:
Bonjour,
Nous rencontrons déjà un problème gênant sur l'utilisation d'Hibernate.
Nous tentons de l'utiliser comme si nous disposions d'une base de données existante et des mappings correspondants à cette base.
Cependant, Hibernate refuse de se lancer sans les classes correspondantes au mappings.
D'un coté, c'est logique, Hibernate doit servir à faire la correspondance avec la base via l'utilisation de ces classes.
Élément de solution ------------------- Selon la page : http://www.hibernate.org/hib_docs/v3/reference/en/html/persistent-classes.ht... (4.4. Dynamic models) il serait possible de demander à Hibernate de ne pas faire le lien avec la classe et d'utiliser seulement le fichier de mapping.
Cependant, cette fonctionnalités est considérée comme très expérimentale.
Expérimentale, et bien c parfait on pourra faire des bug report. Donc pour moi c'est une solution acceptable. -- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
Bonjour, Nous rencontrons un problème avec hibernate et ses sessions. Nous travaillons en mode "dynamic-map" et récupérons des maps qui contiennent elle même des maps. Donc après migration, nous devons remplacer les maps internes qui non pas été migrées. Le probléme est qu'on récupère une map (persistentMap avec un id) et qu'on veut sauvegarder un autre objet avec le même id. Et ça hibernate le refuse. Pour l'instant, nous sommes obligé de fermer la session pour qu'hibernate supprime le lien entre la persistentMap et la session et en ouvrons une nouvelle pour faire la sauvegarde. Mais dans l'optique de passer à des transactions globales, cela nous pose un problème...
On Tue, 13 Mar 2007 09:43:21 +0100 (CET) "Eric CHATELLIER" <eric.chatellier@etu.univ-nantes.fr> wrote:
Bonjour,
Nous rencontrons un problème avec hibernate et ses sessions.
Nous travaillons en mode "dynamic-map" et récupérons des maps qui contiennent elle même des maps.
Donc après migration, nous devons remplacer les maps internes qui non pas été migrées.
Le probléme est qu'on récupère une map (persistentMap avec un id) et qu'on veut sauvegarder un autre objet avec le même id. Et ça hibernate le refuse.
Pour l'instant, nous sommes obligé de fermer la session pour qu'hibernate supprime le lien entre la persistentMap et la session et en ouvrons une nouvelle pour faire la sauvegarde.
Mais dans l'optique de passer à des transactions globales, cela nous pose un problème...
Salut, Est-ce que avec ce qu'on a vu jeudi vous vous en etes sortie ? Est-ce que la gestion des liens fonctionnes ou a bon espoire de fonctionner ? N'oubliez pas non plus l'histoire des ID. bon week-end -- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
Salut,
Est-ce que avec ce qu'on a vu jeudi vous vous en etes sortie ? Est-ce que la gestion des liens fonctionnes ou a bon espoire de fonctionner ?
N'oubliez pas non plus l'histoire des ID.
bon week-end
Ca marche parfaitement pour la sauvegarde des relations. Pour l'instant, on se concentre sur le nouveau mode de fonctionnement que l'on avait définit. (une base réelle pour chaque version). On a pas trop cherché pour les Id car la seule façon que nous avons trouvé de "déconnecter" un objet persistant d'une session était de fermer cette session. Benjamin, Eric, Sébastien, Vincent.
participants (4)
-
Arnaud Thimel -
Benjamin POUSSIN -
Eric CHATELLIER -
Sebastien EON