2010-11-17 16 views
3

Chaque fois que je fais le mappage OU, je rends toutes les relations bidirectionnelles. Autrement dit, j'évite totalement les relations unidirectionnelles. Voici les raisons:ejb 3: est-il correct de rendre toutes les relations birectionnelles?

1) Pour avoir une cohérence dans toutes les relations. Ainsi, par exemple, tout en persistant, je n'ai pas à penser si la relation est unidirectionnelle ou bidirectionnelle. Il suffit de les accrocher des deux côtés dans tous les cas.

2) Pour la sécurité future, si une situation survient lorsque des références sont requises des deux côtés. Si j'avais utilisé unidirectionnel, je devrais faire des changements pour le rendre bidirectionnel.

Est-ce que quelqu'un préfère cette approche de rendre toutes les relations bidirectionnelles? Est-ce que quelqu'un a rencontré de sérieux problèmes de performance suite à cette approche?

Répondre

1

C'est quelque chose que vous pouvez faire, cependant, je pense que c'est peut-être un mauvais choix de conception pour le faire sans raison réelle. En d'autres termes, si votre code a besoin de relations bidirectionnelles dans ses classes de domaine, ayez-y, s'il n'en a pas besoin alors IMHO ne le faites pas.

Notez que vous pouvez rencontrer des problèmes de performance en créant des relations dont vous n'avez pas besoin si vous ne chargez pas trop.

0

Cela dépend de l'opération qui se produit le plus souvent - si vous recherchez plutôt des objets, les comptez et/ou affichez certains d'entre eux, les références bidirectionnelles sont utiles. Mais si l'ajout/suppression d'un objet est l'opération fréquente, utilisez plutôt ceux qui sont unidirectionnels.