我正在尝试将一组连接的子类实体映射到父实体。 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=?;
提前致谢
答案 0 :(得分:0)
我担心这是目前NHibernate中的一个错误(自那以后2.1:|)显然当前的alpha修正了3.2
https://nhibernate.jira.com/browse/NH-1747
可能的解决方法是在运行时手动获取包。很难理解,其他选择是尝试运行alpha版本,但在生产环境中运行alpha并不是一个好主意。