Простая коллекция NHibernate объектов объединенного подкласса - PullRequest
1 голос
/ 14 апреля 2011

Я пытаюсь сопоставить набор сущностей объединенных подклассов с родительской сущностью.SQL, создаваемый NHibernate, кажется неправильным.Я что-то упускаю в своем отображении?Есть ли другой способ решения этой проблемы?

<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>

Это SQL, генерируемый NHibernate.Кажется, что это становится запутанным между супер и подклассами?Единственная таблица с 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 голосов
/ 04 мая 2011

Боюсь, что в настоящее время это ошибка в NHibernate (существует с версии 2.1: |). В текущем альфа-версии есть исправление 3.2

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

Возможная работавокруг, чтобы вручную получить сумку во время выполнения.Едва ли это идеальный вариант, можно попробовать запустить альфа-версию, но вряд ли стоит запускать альфа-версию в производственной среде.

...