2009-12-22 3 views
2

J'utilise schemaExport pour créer une base de données en mémoire pour mes tests automatiques. J'ai plusieurs (5) classes mappant leur identité HiLo à la même table de base de données, en utilisant une colonne par classe.Algorithme SchemaExport vs HiLo

Cela me donne une table, hibernate_unique_key, w. 5 colonnes. Toutefois, lors de la génération de la base de données à l'aide de scemaexport, la table n'obtient qu'une seule colonne (IPoolActivation), ce qui fait échouer mes requêtes, car les mappages dans le modèle ne sont plus valides. J'ai essayé d'interroger manuellement la base de données en mémoire pour créer la table, mais je préférerais savoir comment faire schemaexport le faire correctement.

Un extrait d'un de mes fichiers de mappage;

<id name="Id" column="Id" type="Int32"> 
    <generator class="hilo"> 
    <param name="column">IENPool</param> 
    </generator> 
</id> 

Quelle est la bonne façon de procéder?

Répondre

3

Je crois qu'il y a un bug (ou c'est par nature) dans SchemaExport, et il ne regarde qu'une fois la table hibernate_unique_key quand il voit la première entité avec HiLo. Par conséquent, toutes les entités HiLo doivent utiliser la même colonne.

Cependant, j'ai récemment eu besoin d'un IdGenerator personnalisé que j'ai basé sur la même classe de base dans NHibernate dont HiLo hérite. Pour cette base de données j'avais besoin d'une colonne par table (c'était pour une ancienne base de données qui était configurée avec un générateur de style HiLo de cette façon).

Vous pouvez voir ce que je faisais ici si ça aide:

Implementing a custom id Generator for nHibernate

Generate custom DDL for a custom id Generator

Entire post on nhibernate.info

+0

Merci! Pour l'instant je vais aller avec la solution de colonne unique, mais j'apprécie vraiment l'exemple. – hhravn

+0

Oui, je recommande vraiment cela pour rester simple. Je l'ai seulement fait en raison de l'exigence de l'héritage. –

+0

Il se trouve que c'est par conception et pose encore des problèmes pour les développeurs (y compris moi-même). Regardez ici: https://nhibernate.jira.com/browse/NH-2687 –

Questions connexes