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

时间:2011-04-14 08:11:43

标签: nhibernate nhibernate-mapping

我正在尝试将一组连接的子类实体映射到父实体。 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=?;

提前致谢

1 个答案:

答案 0 :(得分:0)

我担心这是目前NHibernate中的一个错误(自那以后2.1:|)显然当前的alpha修正了3.2

https://nhibernate.jira.com/browse/NH-1747

可能的解决方法是在运行时手动获取包。很难理解,其他选择是尝试运行alpha版本,但在生产环境中运行alpha并不是一个好主意。