C#NHibernate Joined-Subclass取得问题

问题描述

| 我有以下映射的类:
    <class name=\"Company\" table=\"Company\">
        <id name=\"ID\" column=\"CompanyID\">
          <generator class=\"native\"/>
        </id>
        <joined-subclass name=\"CompanyAccounting\" table=\"company_accounting\" lazy=\"true\">
          <key column=\"CompanyID\"/>
        </joined-subclass>
        <joined-subclass name=\"CompanyCarbon\" table=\"company_carbon\" lazy=\"true\">
          <key column=\"CompanyID\" />
        </joined-subclass>
    </class>
现在,以下测试失败:
        var company = CompanyAdapter.Get<Company>(_session,32);
        Assert.IsNotNull(company);

        var client = CompanyAdapter.Get<CompanyClient>(_session,32);
        Assert.IsNotNull(client);
但是以下成功:
        var client = CompanyAdapter.Get<CompanyClient>(_session,32);
        Assert.IsNotNull(client);

        var company = CompanyAdapter.Get<Company>(_session,32);
        Assert.IsNotNull(company);
第一次测试失败的原因是因为NHibernate将Company提取为CompanyAccounting,因为Company(32)既是会计公司又是客户,并且当我致电Session.Get后,它已将Company提取为CompanyAccounting,所以它不会返回数据库并检查是否存在CompanyClient的条目,并假设Company只能在子类上,是否有必要指定它可以从所有子类继承?

解决方法

我最终要做的是重构我的班级,而不是 类公司, CompanyClient类:公司, class CompanyAccounting:公司 我使CompanyClient和CompanyAccounting不是从Company继承的,并将Company作为
<one-to-one>
关系添加,这是这些类的主键。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...