我正在使用schemaExport为我的自动测试创建内存数据库。我有几(5)个类将他们的HiLo标识映射到同一个数据库表,每个类使用一列。
这给了我一张桌子,hibernate_unique_key,w。 5列。但是,在使用scemaexport生成数据库时,该表只获得一个列(IPoolActivation),从而使我的查询失败,因为模型中的映射现在无效。我已经尝试手动查询内存数据库来创建表,但我宁愿知道如何使schemaexport正确执行。
我的一个映射文件的片段;
<id name="Id" column="Id" type="Int32">
<generator class="hilo">
<param name="column">IENPool</param>
</generator>
</id>
这样做的正确方法是什么?
答案 0 :(得分:3)
我相信在SchemaExport中存在一个错误(或者它是设计上的),它只在看到第一个带有HiLo的实体时才查看hibernate_unique_key表。因此,所有HiLo实体都必须使用相同的列。
但是,我最近需要一个自定义IdGenerator,它基于HiLo继承的NHibernate中的相同基类。对于这个数据库,我需要每个表一列(它是用于使用HiLo样式生成器设置的遗留数据库)。
如果有帮助,你可以看看我在这里做了什么:
Implementing a custom id Generator for nHibernate