Choix de la stratégie d'héritage dans topia
Salut, Je viens d'ajouter un nouveau tag value qui permet de choisir la statégie d'héritage dans topia. (ex : xx.xxx.xxxx.MyClass.class.tagvalue.inheritanceStrategy=joined-subclass) La statégie par defaut reste 'union-subclass'. À noter que s'il y a un natural-id sur la classe mère, hibernate ne génère pas de contrainte unique dans les tables filles. On peux choisir en plus entre 'joined-subclass' et 'subclass'. Pour 'subclass', j'ai dû ajouter un champ topia 'topiaDiscriminator' dans le mapping de la classe mère. Voilà. -- Éric Chatellier - Code Lutin Tel: 02.40.50.29.28 - http://www.codelutin.com
On Thu, 04 Jul 2013 11:48:30 +0200 Eric Chatellier <chatellier@codelutin.com> wrote:
Salut,
Je viens d'ajouter un nouveau tag value qui permet de choisir la statégie d'héritage dans topia. (ex : xx.xxx.xxxx.MyClass.class.tagvalue.inheritanceStrategy=joined-subclass)
La statégie par defaut reste 'union-subclass'. À noter que s'il y a un natural-id sur la classe mère, hibernate ne génère pas de contrainte unique dans les tables filles.
On peux choisir en plus entre 'joined-subclass' et 'subclass'.
Pour 'subclass', j'ai dû ajouter un champ topia 'topiaDiscriminator' dans le mapping de la classe mère.
J'ai pas vu passer dans le commit, ça marche commet alors ?
Voilà.
Super :) Faudra juste penser à le mettre dans le doc :) Laquelle me diras-tu... tony.
Le 04/07/2013 11:48, Eric Chatellier a écrit :
Je viens d'ajouter un nouveau tag value qui permet de choisir la statégie d'héritage dans topia. (ex : xx.xxx.xxxx.MyClass.class.tagvalue.inheritanceStrategy=joined-subclass)
Sauf erreur de ma part, il me semblait qu'on favorisait plutôt la forme suivante : xx.xxx.xxxx.MyClass.class.tagvalue.useJoinedSubclassInheritanceStrategy=true|false ou xx.xxx.xxxx.MyClass.class.tagvalue.useSubclassInheritanceStrategy=true|false Je ne me souviens plus de la raison exacte mais il me semble que ça permettrait de gérer la validation au moment où eugene contrôle les tagValues. Je crois qu'il peut valider que la clé de la tagValue est bonne mais ne fait pas de contrôle sur la valeur. -- Brendan Le Ny, Code Lutin bleny@codelutin.com (+33) 02 40 50 29 28
Le 04/07/2013 12:13, Brendan Le Ny a écrit :
Sauf erreur de ma part, il me semblait qu'on favorisait plutôt la forme suivante :
xx.xxx.xxxx.MyClass.class.tagvalue.useJoinedSubclassInheritanceStrategy=true|false
ou
xx.xxx.xxxx.MyClass.class.tagvalue.useSubclassInheritanceStrategy=true|false
Je ne me souviens plus de la raison exacte mais il me semble que ça permettrait de gérer la validation au moment où eugene contrôle les tagValues. Je crois qu'il peut valider que la clé de la tagValue est bonne mais ne fait pas de contrôle sur la valeur. S'il doit y avoir validation, je préfère: xx.xxx.xxxx.MyClass.class.tagvalue.inheritanceStrategy=joined-subclass avec une liste finie de valeur possible plutôt que plusieurs tag value qui peuvent se contredire entre elles.
-- Éric Chatellier - Code Lutin Tel: 02.40.50.29.28 - http://www.codelutin.com
Le 04/07/2013 12:33, Eric Chatellier a écrit :
S'il doit y avoir validation, je préfère: xx.xxx.xxxx.MyClass.class.tagvalue.inheritanceStrategy=joined-subclass avec une liste finie de valeur possible plutôt que plusieurs tag value qui peuvent se contredire entre elles.
En fait, je me suis fourvoyé, ma mémoire a fourché. Le problème de validation était à une époque ou on avait des tagValues avec des clés dynamiques. Ce n'est pas le cas de ta solution puisque la tagValue est toujours la même donc tout va bien. -- Brendan Le Ny, Code Lutin bleny@codelutin.com (+33) 02 40 50 29 28
On Thu, 04 Jul 2013 12:33:09 +0200 Eric Chatellier <chatellier@codelutin.com> wrote:
Le 04/07/2013 12:13, Brendan Le Ny a écrit :
Sauf erreur de ma part, il me semblait qu'on favorisait plutôt la forme suivante :
xx.xxx.xxxx.MyClass.class.tagvalue.useJoinedSubclassInheritanceStrategy=true|false
ou
xx.xxx.xxxx.MyClass.class.tagvalue.useSubclassInheritanceStrategy=true|false
Je ne me souviens plus de la raison exacte mais il me semble que ça permettrait de gérer la validation au moment où eugene contrôle les tagValues. Je crois qu'il peut valider que la clé de la tagValue est bonne mais ne fait pas de contrôle sur la valeur. S'il doit y avoir validation, je préfère: xx.xxx.xxxx.MyClass.class.tagvalue.inheritanceStrategy=joined-subclass avec une liste finie de valeur possible plutôt que plusieurs tag value qui peuvent se contredire entre elles.
+1, il faudrait pouvoir faire rentrer ça dans les TagValues, je propose d'ajouter un nouvel attribut String[] possibleValues() default {}; sur l'annoation TagValueDefinition qui permettra alors la validation des valeurs et ça serviera aussi dans la documentation. -- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
participants (3)
-
Brendan Le Ny -
Eric Chatellier -
Tony Chemit