Le Fri, 22 May 2009 16:54:38 +0200, Florian DESBOIS <fdesbois@codelutin.com> a écrit :
Bonjour à tous,
D'après ce que j'ai vu dans le code de ToPIA-persistence, il n'y a pas de possibilité que l'utilisateur crée un DAOImpl personnalisé pour remplacer celui généré. En effet le DAOImpl est toujours généré donc incompatibilité si l'utilisateur en crée un nouveau et aucune prise en compte car l'interface (faux, voir plus loin) n'est pas mise à jour avec les nouvelles méthodes. A l'instar des Entités, il serait intéressant de pouvoir rajouté dans le modèle XMI la possibilité d'ajouter des méthodes sur les DAO et non sur les Entités. Pourquoi ? Tout simplement pour permettre l'ajout de méthode spécifique au DAO non généré (recherche complexe, autre traitement non pris en compte avec utilisation du SQL avec Hibernate (je sais plus le nom du langage) pour une requête complexe, ...).
Je propose donc la prise en compte de ces méthodes en les signalant comme "static" au niveau des entités. La logique suit, une méthode static est bien général à l'ensemble des entités donc dans un DAO.
Je viens de voir que les DAO n'ont pas le même modèle de génération que les entités à savoir : une interface, une classe abstraite, une classe implémentation mais une classe abstraite, une classe implémentation et une classe finale qui hérite de l'implémentation et est utilisé dans les Helper (donc par l'utilisateur). Pourquoi cette différence ?
Tu peux toujours écrire un helper qui étedns celui généré et des dao qui étendent ceux générés ? et donc dans ton helper écrire ce que tu veux ? pour récupérer ton DAO non générique...
Du coup les changements serait a apporté normalement dans le DAOImplGenerator qui ne doit pas généré le DAOImpl si l'entité lié possède une méthode abstraite. Il serait intéressant pour globaliser cette notion de rajouter une méthode hasAbstractOperations dans ObjectModelClass de EUGene.
Je m'égare peut-être, il y a peut-être déjà une autre possibilité d'étendre les DAO ? Sinon, qu'en pensez vous de pouvoir préciser des méthodes static dans les entités qui seront à implémenter par l'utilisateur dans les DAO (les méthodes ne seront pas static donc) ?
C'est pas du tout naturel à mon gout... Je suis plutôt contre car on indique quelque chose dans le modèle qui ne correspond pas à la réalité.
J'espère avoir été clair et précis :p
oui :)
Florian
-- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com