У меня возникла необычная проблема - я уверен, что сейчас упускаю что-то очень простое!В частности, две таблицы:
<class name="Proposal" table="Proposal">
<id name="Id" column="ProposalId">
<generator class="identity" />
</id>
<property name="QuotationNumber" column="QuotationNumber" access="nosetter.camelcase-underscore" />
<set name="DataItems" table="ProposalData" inverse="true" cascade="save-update" access="nosetter.camelcase-underscore" lazy="true">
<key column="ProposalId" />
<one-to-many class="Fortron.Fastr.Domain.Proposal.ProposalData, Fortron.Fastr.Domain"/>
</set>
</class>
и
<class name="ProposalData" table="ProposalData">
<id name="Id" column="ProposalDataId">
<generator class="identity" />
</id>
<many-to-one name="Proposal" column="ProposalId" class="Fortron.Fastr.Domain.Proposal.Proposal, Fortron.Fastr.Domain" />
</class>
Мне кажется, есть именованный запрос в моем файле .HBM.XML, как показано ниже:
FROM Proposal MSP
JOIN FETCH MSP.DataItems Items
Если я не собираюсь говорить о нём, учитывая, что Предложение является одним-ко-многим с ProposalData, NH должен загрузить каждый из объектов Предложения, а также Данные для каждого в виде коллекции.К сожалению, я получаю повторяющиеся результаты, так как для каждого предложения есть несколько ProposalData.
Насколько я понимаю, это не должно быть проблемой.Если бы у ProposalData была таблица «один ко многим» с другой таблицей, то получился бы декартовой продукт, и можно ожидать вышеприведенного.
Я ошибаюсь?Кто-нибудь может пролить свет?
Спасибо.