J'ai une base de données héritée qui a environ 10 tables identiques (seul le nom diffère). Est-il possible de pouvoir utiliser la même entité commerciale pour toutes les tables sans avoir à créer plusieurs classes/fichiers de mappage?Même entité commerciale pour des tables identiques?
Répondre
Vous pouvez utiliser la fonction de nom d'entité si vous utilisez NHibernate v2.1 ou supérieur. Il est peu documenté mais j'utilise activement la fonctionnalité. Il a obtenu difficile de trouver la documentation, mais regardez ici:
Section 5.3
http://docs.jboss.org/hibernate/core/3.2/reference/en/html/mapping.html#mapping-entityname
Un couple de choses à être au courant. Vous devez maintenant utiliser le nom de l'entité au lieu du nom de la classe pour faire référence aux objets. En général, il ne s'agit pas d'un changement entièrement transparent passant des noms de classes aux noms d'entités.
actions de session exigent maintenant deux paramètres, par exemple:
_session.Save ("MyEntity", myobject)
Les contrôles de nom d'entité quelle table les données va.
Certaines requêtes HQL ne fonctionnent plus correctement, vous devez parfois utiliser Criteria à la place.
Si vous avez besoin d'un ensemble d'exemples de code, je peux en poster un peu, mais beaucoup trop occupé pour le moment. Je vous suggère de regarder les informations limitées que vous pouvez trouver et de le configurer pour un objet très simple et plusieurs tables pour apprendre comment tout cela fonctionne. Ça marche.
Vous pouvez créer une classe de base avec toutes les propriétés, mais vous devez tout les mapper. Pour cela, vous pouvez utiliser la copie & pâte, les entités XML (voir exemple à http://nhibernate.info/doc/nh/en/index.html#inheritance-tableperconcreate-polymorphism) ou une méthode de mappage basée sur le code (Fluent ou ConfORM). Ils facilitent généralement la réutilisation.
- 1. Entité commerciale: instance privée VS instance unique
- 2. champs identiques dans la plupart des tables
- 3. NHibernate - Mapper la même entité à de nombreuses tables
- 4. Puis-je créer plusieurs tables selon la même entité?
- 5. Sélectionner les données de deux tables avec des colonnes identiques
- 6. Attribuer une entité commerciale à une variable cachée
- 7. Mettre à jour le modèle de données Entité commerciale
- 8. MySql: interroger plusieurs tables dynamiques identiques
- 9. NHibernate - mappe la même entité à différentes tables dans la même base de données
- 10. postgresql interroger sur plusieurs tables identiques
- 11. JPA, Comment utiliser la même classe (entité) pour mapper différentes tables?
- 12. RadGrid ou GridView ne correspond pas entité commerciale pour le rapport
- 13. Comment créer une façade pour des tables SQL LINQ 2 identiques?
- 14. PostgreSQL/Ruby pour application commerciale
- 15. Synchroniser des tables identiques dans des bases de données séparées avec php
- 16. Méthode la plus efficace pour interroger plusieurs tables identiques dans des bases de données distinctes
- 17. Séparation d'une entité Hibernate entre 2 tables
- 18. Obtention de différences d'enregistrement entre 2 tables presque identiques
- 19. idée commerciale pour un projet gpl
- 20. Le code pour générer des chaînes aléatoires crée la même succession de chaînes identiques
- 21. EF 4 relation dans la même entité
- 22. Combinaison récursive d'éléments identiques identiques dans XSLT
- 23. application Web PHP commerciale -
- 24. représentations multiples de la même entité
- 25. Comment puis-je trouver des tables identiques dans MySQL et PHP?
- 26. JPA persiste deux fois la même entité
- 27. combinant deux tables identiques (en fait des champs de table) en un
- 28. Faire des tables Microsoft Access dans SQL Server identiques sur différentes installations
- 29. Conversion de types identiques de différentes versions du même assemblage
- 30. Comparaison des 2 chaînes identiques
Upvoted car cela fonctionnerait, bien que la réponse par Sisyphus est plus proche de ce dont j'ai besoin. J'utilise le même référentiel pour tous les objets (en les traitant comme le même type, mais en utilisant le nom de la table pour les identifier) – jgauffin