|
From: Julian M. (JIRA) <nh...@gm...> - 2011-06-14 15:35:15
|
[ http://216.121.112.228/browse/NH-2760?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Julian Maughan updated NH-2760:
-------------------------------
Fix Version/s: 3.2.0Beta2
Description:
// Many-to-many association between User and UserGroup.
var query =
from ug in session.Query<UserGroup>()
orderby ug.Users.Count()
select ug;
query.ToList();
// Exception of type 'Antlr.Runtime.NoViableAltException' was thrown.
was:
(Attaching unit tests and exception shortly.)
// Many-to-many association between User and UserGroup.
var query =
from ug in session.Query<UserGroup>()
orderby ug.Users.Count()
select ug;
query.ToList();
// Exception of type 'Antlr.Runtime.NoViableAltException' was thrown.
Issue Type: Improvement (was: Bug)
Thanks for the test. I've committed a change that makes it pass.
The Linq statement now generates the same SQL as the equivalent HQL statement: "select ug from UserGroup ug order by size(ug.Users)"...
select
usergroup0_.Id as Id2_,
usergroup0_.Name as Name2_,
usergroup0_.Other as Other2_
from
UserGroup usergroup0_
order by
(select cast(count(*) as INT)
from UserGroupUsers users1_, [User] user2_
where usergroup0_.Id=users1_.UserGroupId
and users1_.UserId=user2_.Id) asc
Unfortunately some RDBMs may have trouble with the subquery in the ORDER BY clause.
> Unable to order by sub-collection's count
> -----------------------------------------
>
> Key: NH-2760
> URL: http://216.121.112.228/browse/NH-2760
> Project: NHibernate
> Issue Type: Improvement
> Components: Linq Provider
> Affects Versions: 3.2.0Beta1
> Reporter: Kelly Stuard
> Priority: Major
> Fix For: 3.2.0Beta2
>
> Attachments: NH2760-Exception.txt, NH2760.zip
>
>
> // Many-to-many association between User and UserGroup.
> var query =
> from ug in session.Query<UserGroup>()
> orderby ug.Users.Count()
> select ug;
> query.ToList();
> // Exception of type 'Antlr.Runtime.NoViableAltException' was thrown.
--
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
|