NHibernate联接子类实体的简单集合

问题描述

| 我正在尝试将一组联接子类实体映射到父实体。 NHibernate生成sql似乎不正确。我在映射中缺少任何内容吗?有没有其他方法可以解决这个问题?
<class name=\"ResultItem\" table=\"result\">

  <id name=\"ID\">
    <generator class=\"identity\" />
  </id>

  <many-to-one name=\"Job\" column=\"JobID\"/>
  <property name=\"Timestamp\"/>
  <many-to-one name=\"User\" column=\"UserID\"/>

  <joined-subclass name=\"ResultItemAttachment\" table=\"result_attachment\">
    <key column=\"ID\"/>
    <property name=\"Comment\"/>
  </joined-subclass>

</class>
这是NHibernate生成sql。似乎在上级成员和子类成员之间变得困惑了吗?唯一具有JobID的表是结果表,而不是result_attachment。
SELECT attachment0_.JobID as JobID1_,attachment0_.ID as ID1_,attachment0_.ID as ID26_0_,attachment0_1_.JobID as JobID26_0_,attachment0_1_.`Timestamp` as Timestamp26_0_,attachment0_1_.UserID as UserID26_0_,attachment0_.`Comment` as Comment33_0_
FROM result_attachment attachment0_
inner join result attachment0_1_ on attachment0_.ID=attachment0_1_.ID
WHERE attachment0_1_.JobID=?;
提前致谢     

解决方法

恐怕这目前是NHibernate中的一个错误(自2.1:|以来一直存在)目前,在当前的alpha版本3.2中已修复 https://nhibernate.jira.com/browse/NH-1747 可能的解决方法是在运行时手动提取包。不太理想,其他选择是尝试运行Alpha版本,但是在生产环境中运行Alpha并不是一个好主意。