|
From: Andrei A. (JIRA) <nh...@gm...> - 2011-05-14 13:32:42
|
[ http://216.121.112.228/browse/NH-2705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21078#action_21078 ]
Andrei Alecu commented on NH-2705:
----------------------------------
I just noticed that I forgot to include the .csproj additions in the patch, so make sure to include the NHSpecificTest\NH2705 folder in the project after applying.
> Linq/Hql/Criteria Fetch on class hierarchy generates invalid SQL when derivees mix component and many-to-one mappings
> ---------------------------------------------------------------------------------------------------------------------
>
> Key: NH-2705
> URL: http://216.121.112.228/browse/NH-2705
> Project: NHibernate
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.1.0
> Reporter: Andrei Alecu
> Priority: Major
> Attachments: nh2705 test.patch
>
>
> Consider the following scenario:
> public class ItemBase
> {
> public virtual int Id { get; set; }
> public virtual SubItemBase SubItem { get; set; }
> }
> public class ItemWithComponentSubItem:ItemBase { }
>
> public class ItemWithManyToOneSubItem:ItemBase { }
> ItemWithComponentSubItem defines in its mapping that SubItem is a component of SubItemComponent type (which derives from SubItemBase)
> ItemWithManyToOneSubItem defines in its mapping that SubItem is a many-to-one of SubItemEntity type (again, derives from SubItemBase)
> Running the following query with fetch results in invalid SQL being executed:
> from ItemBase i left join fetch i.SubItem
> Removing the fetch makes it work properly.
> from ItemBase i
> Also, this works:
> from ItemWithManyToOneSubItem i left join fetch i.SubItem
> But this doesn't:
> from ItemWithComponentSubItem i left join fetch i.SubItem (one would argue there's nothing to fetch here, but instead of throwing an exception, the fetch instruction should just be ignored and maybe a warning logged, it would allow for much better reuse of code)
> I will attach a unit test that demonstrates this bug, and also a related one at NH-2615.
> I believe the correct behavior here is to allow fetch on components, and simply ignore it rather than throwing an exception.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|