Hibernate的单向继承

时间:2011-04-29 21:47:10

标签: nhibernate fluent-nhibernate nhibernate-mapping

我坦率地不知道如何搜索我的问题,所以这里就是。

我正在为我正在开始的新项目尝试一些不同的方法。

我有一个PostgreSQL DBMS。我有一个包含多个模式的DB。这个想法是有一个“根”模式,它作为其他模式的基础。 我想要实现的是一种“单向”继承。我希望我在根表中的查询不要查看子类的模式,但我还没有找到办法。

在查询子类时,我想加入基类,但在查询基类时,我不想查询子类。

我理解不同继承方法之间的区别,但我不确定我是否有可能做到这一点。

我当前的设置实际上适用于不同模式中的子类,但是当查询基类时,NHibernate会查询每个子类以查看基类是否是这些类型中的任何一种。

在某些情况下,这种行为可能是合适的,但在其他情况下,我只想“单独”查询基类。

作为另一个要求,基类不能知道子类(它们就像插件/扩展)。

希望上述内容有任何意义 - 表达起来有点困难。

提前致谢...

2 个答案:

答案 0 :(得分:1)

<class ... polymorphism="explicit">

请参阅http://www.nhforge.org/doc/nh/en/index.html#mapping-declaration-class

答案 1 :(得分:0)

我明白了。我的问题出在我的SubclassMap<>。显然NHibernate不支持使用连接子类的显式多态。我现在使用ClassMap<>加入每个子类并调用Join(...)。在这种情况下,显式多态性有效。