问题描述
|
我正在尝试将一组联接子类实体映射到父实体。 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并不是一个好主意。